Django数据库设置不好

时间:2012-05-08 08:00:07

标签: mysql django orm

我执行以下操作:

myScript.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.

2 个答案:

答案 0 :(得分: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',
    }
}

然后你就定了。

<强>更新
正如旁注所示,运行批处理作业的推荐方法是创建management commands,而不是尝试在命令行脚本中使用settings.configure。这样您就不必复制您的设置或弄乱环境,并且使用与常规Web应用程序相同的机制加载设置时,您可以保证它们是相同的。

答案 1 :(得分:0)

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