我正在浏览Django Book并且在尝试执行'cursor = connection.cursor()'命令来测试数据库配置时遇到了困难。我是一个完整的菜鸟,但我确实花了几个小时试图找出问题 - 无济于事。 (对不起下面的终端输出杂乱显示 - 所以不允许新用户发布图像。)
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.db import connection
>>> cursor = connection.cursor()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/dummy/base.py", line 15, in complain
raise ImproperlyConfigured("settings.DATABASES is improperly configured. "
ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
>>> from django.conf import settings
>>> settings.DATABASES
{'default': {'ENGINE': 'django.db.backends.dummy', 'TEST_MIRROR': None, 'NAME': '', 'TEST_CHARSET': None, 'TIME_ZONE': 'UTC', 'TEST_COLLATION': None, 'OPTIONS': {}, 'HOST': '', 'USER': '', 'TEST_NAME': None, 'PASSWORD': '', 'PORT': ''}}
>>>
我进行了settings.DATABASE检查,结果与我在settings.py文件中保存的结果不同 - 这是问题的来源吗?
我看到这里有几个关于这个问题的类似问题 - 但是他们都没有为我解决问题。
这是我在settings.py中设置的数据库:
***
ADMINS = (
# ('Your Name', 'your_email@example.com'),
)
MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'mydb', # Or path to database file if using sqlite3.
'USER': 'paul', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
***
感谢您的帮助。
答案 0 :(得分:3)
我怀疑这可能是因为这本书已经过时了(Django发展得相当快,并且自书写完以来发生了许多向后不兼容的变化)。请参阅The Django Book首页上的注释:
本书最初由Apress于2009年出版,并有报道 Django 1.0。从那以后,它已经衰落了。我们正致力于获得 本书已更新,涵盖Django 1.4,1.5及更高版本。
所以这个错误出现可能不是你的错! :)
如果您还没有这样做,我建议您浏览官方Django教程(通过Django主页链接)并阅读the docs。教程和文档保持最新。但是,请注意您正在查看已安装的Django版本的文档(文档可能因发布的每个Django版本而异)。您可以通过网站右下角的切换台切换文档版本()。
Django Book仍然具有价值,因为它揭示了很多关于Django背后的哲学 - 但只要知道提供的代码可能不适用于当前的Django版本。