我执行以下操作:
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.
答案 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并检查是否存在错误