0

Django で MySQL データベースをプロジェクトに接続します。ファイルではsettings.py、次のように規定しています。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydb',
        'USER': 'root',
        'PASSWORD': '1',
    }
}

次に、構成をテストするために、次のコマンドを実行します。

>>> from django.db import connection
>>> cursor = connection.cursor()

コンソールには次の情報が表示されます。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 11, in <module>
    if settings.DATABASES and DEFAULT_DB_ALIAS not in settings.DATABASES:
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 53, in __getattr__
    self._setup(name)
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 46, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

お願い助けて。最近Djangoを学び始めました。

4

3 に答える 3

1

エラーが発生する理由は、django の構成、モデル、およびツールを使用するために、django の設定を読み込む必要があるためです。django は、shelldjango 用に構成された Python プロンプトをロードする管理コマンドを提供します。

(アプリケーションではなく)プロジェクトpython manage.py shellのディレクトリから実行すると、そのエラーは発生しません (別のエラーが発生します)。

django を学んでいるので、MySQL をデータベースとして使用しないでください。チュートリアルで提案されているように、組み込みの sqlite データベースを使用して、django の速度を上げます。

于 2013-09-28T18:23:11.290 に答える
0

あなたには と がありsettings.pyません。HOSTPORT

于 2013-09-28T18:27:17.457 に答える
0

データベース構成を見てみると、次のようになります。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydb',
        'USER': 'root',
        'PASSWORD': '1',
    }
}

HOSTとが設定されていませんPORT。エラー状態のように (必要なすべてのキーとそれぞれの値がない場合、django はエラーをスローします。この場合、HOSTPORT要件です):

django.core.exceptions.ImproperlyConfigured: Requested setting DATABASES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

localhost で開発している場合は、MySQL のデフォルトである必要がHOSTあり''ます(インストール中にこれを変更しない限り)。PORT3306

django を初めて使用する場合は、SQLite を使用してみてください。これが最も簡単に開始できます。ただし、SQLite の使用を選択した場合は、パス名を に入力する必要がありますNAME.dbSQLiteファイルを作成していなくても心配はいりません。何も存在しない場合は、作成されます。

于 2013-09-28T18:28:08.223 に答える