1

私は Django Book を調べていますが、'cursor = connection.cursor()' コマンドを実行してデータベース構成をテストしようとすると、本当に行き詰まりました。私は完全な初心者ですが、問題を特定するために数時間を費やしましたが、役に立ちませんでした。(以下の端末出力の乱雑な表示については申し訳ありません-SOは新しいユーザーが画像を投稿することを許可していません)。


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

***

ご協力ありがとうございました。

4

1 に答える 1

3

この本が古くなっているのではないかと思います (Django はかなり急速に進化し、この本が書かれてから多くの後方互換性のない変更が加えられました)。The Django Book のフロント ページの注を参照してください。

この本は 2009 年に Apress によって最初に出版され、Django 1.0 をカバーしていました。それ以来、衰退しています。Django 1.4、1.5、およびそれ以降をカバーするようにブックを更新する作業を行っています。

したがって、このエラーが表示されるのはおそらくあなたのせいではありません! :)

まだ行っていない場合は、公式の Django チュートリアル (Django のホームページからリンクを利用できます) を読み、 docsを読むことをお勧めします。チュートリアルとドキュメントは最新の状態に保たれています。ただし、インストールした Django バージョンのドキュメントを参照していることに注意してください (ドキュメントは、リリースされた Django バージョンごとに異なる場合があります)。ドキュメントのバージョンは、Web サイトの右下にあるスイッチャー ( スクリーンショットを見る) で切り替えることができます。

Django Book は、Django の背後にある哲学について多くのことを明らかにしているため、依然として価値がありますが、提供されているコードは現在の Django バージョンでは機能しない可能性があることに注意してください。

于 2012-10-19T07:41:54.223 に答える