5

このクエリに関する私の投稿がありますが、それらのほとんどはLinux用です。それらのどれもウィンドウのために明示的に

私のアプリケーションでは、データベースをセットアップしています(sqlite3、Djangoのデフォルト)。アプリケーション(mysite)のsetting.pyファイルを編集した後

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'D:/Django_Code/sqlite.db',                      # Or path to database file if using sqlite3.
        'USER': '',                      # 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.
    }
}

Djangoがデータベース設定について知ることができるように、DJANGO_SETTINGS_MODULE環境を設定する必要があることがわかった後。だから私はそれを次のように設定しました

DJANGO_SETTINGS_MODULE = "D:\Django_Code\mysite\mysite\settings.py"

発行時にデータベース設定をクロスチェックするには

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

DJANGO_SETTINGS_MODULE環境変数が未定義であると表示されます。

DJANGO_SETTINGS_MODULEを正しく設定するためのヘルプが必要です。

4

1 に答える 1

7

DJANGO_SETTINGS_MODULEWindowsで設定する最も簡単な方法setは、コマンドプロンプトからコマンドを使用することです。システムプロパティを介して設定することもできるはずですが、変更を有効にするには、コマンドプロンプトを閉じてから再度開く必要があります。

次のコマンドをDJANGO_SETTINGS_MODULE使用して、現在の値を照会することもできます。set

C:\temp\testproject> set DJANGO_SETTINGS_MODULE

さらに、ファイル名ではなく、Pythonモジュール名に設定する必要があります(ファイル名に設定すると、「設定をインポートできませんでした」C:\ temp \ testproject \ settings.py'のようなエラーが発生します(これはon sys.path?):ファイル名によるインポートはサポートされていません。 ")

例えば、

C:\temp\testproject> set DJANGO_SETTINGS_MODULE=testproject.settings

次に、Pythonを実行して、モジュールをインポートできます。

>>> import sys
>>> sys.path += ['C:\\temp']
>>> from django.db import connection
>>> connection.cursor()
<django.db.backends.util.CursorDebugWrapper object at 0x02C7F0B0>

djangoプロジェクト(testprojectこの場合)を含むディレクトリも明示的に追加したことに注意してくださいsys.path。これは、Pythonがモジュールを検索するディレクトリのリストです。これが必要なのは、Pythonが設定ファイルをファイルではなくPythonモジュールとしてインポートするためです(前述のとおり)。

インタラクティブシェルでDjangoオブジェクトを操作したい場合は、shell管理コマンドを使用できます。Djangoプロジェクトディレクトリで、次のコマンドを実行します。

manage.py shell

あなたは窓にいるので、あなたはしなければならないかもしれません

python manage.py shell

代わりに、私は個人的にPythonスクリプトがコマンドライン引数を受け取らないという問題を抱えていたので。

C:\temp\testproject> python manage.py shell

In [1]: from django.db import connection

In [2]: connection.cursor()
Out[2]: <django.db.backends.util.CursorDebugWrapper at 0x33a0bd0>

(私はIPythonをインストールしていて、Djangoは賢くてそれを使用していることに注意してください。IPythonがインストールされていない場合、シェルは少し異なって見えます。)

Djangoでスクリプトを実行する場合、最も簡単な方法は、カスタム管理コマンドを作成することです。このコマンドは、への引数を指定して実行できますmanage.py

于 2012-10-12T08:20:14.920 に答える