0

我执行以下操作:

我的脚本.py

# settings.py
from django.conf import settings
from django.db import models
from myApp.models import *


    settings.configure(
        DATABASE_ENGINE    = 'django.db.backends.mysql',
        DATABASE_NAME      = 'Test',
        DATABASE_USER      = 'root',
        DATABASE_PASSWORD  = 'testpw',
        DATABASE_HOST      = '/var/run/mysql',
        DATABASE_PORT      = '3306',
        INSTALLED_APPS     = ('myApp')
    )

    from django.db import models
    from myApp.models import *

使用以下 settings.py

DATABASE_ENGINE    = 'mysql'
DATABASE_NAME      = 'Test'
DATABASE_USER      = 'root'
DATABASE_PASSWORD  = 'testpw'
DATABASE_HOST      = '/var/run/mysql'
DATABASE_PORT      = '3306'
INSTALLED_APPS     = ('myApp')

我的设置有误,但不知道错误是什么。数据库运行良好,可通过密码和用户名访问...在我的 manage.py 中,我接下来执行:"DJANGO_SETTINGS_MODULE", "standAlone.myScript"

这是我的错误: raise ImproperlyConfigured("settings.DATABASES is improperly configured. "django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured.

4

2 回答 2

4

从 Django 1.2 开始,DATABASE_*不推荐使用设置系列以支持新DATABASES设置。在 1.4 中它被完全删除,这意味着从 1.4 开始您必须使用该DATABASES设置。

请参阅文档: https ://docs.djangoproject.com/en/dev/ref/settings/#databases https://docs.djangoproject.com/en/dev/internals/deprecation/#id1

更新: 重写

    DATABASE_ENGINE    = 'django.db.backends.mysql',
    DATABASE_NAME      = 'Test',
    DATABASE_USER      = 'root',
    DATABASE_PASSWORD  = 'testpw',
    DATABASE_HOST      = '/var/run/mysql',
    DATABASE_PORT      = '3306',

DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'Test',
        'USER': 'root',
        'PASSWORD': 'testpw',
        'HOST': '/var/run/mysql',
        'PORT': '3306',
    }
}

你已经准备好了。

更新:
作为旁注,不要尝试settings.configure在命令行脚本中使用,推荐的运行批处理作业的方法是创建管理命令。这样您就不必重复设置或弄乱环境,并且由于使用与常规 Web 应用程序相同的机制加载设置,因此可以保证它们是相同的。

于 2012-05-08T08:38:50.417 回答
0

确保使用正确的数据库配置更新了 settings.py 文件,然后尝试 python manage.py syncdb 并检查是否有错误

于 2013-09-18T07:06:53.053 回答