0

私は次のことを行います:

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.

4

2 に答える 2

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',
    }
}

そして、あなたは設定されています。

更新:
補足として、settings.configureコマンドラインスクリプトで使用する代わりに、バッチジョブを実行するための推奨される方法は、管理コマンドを作成することです。そうすれば、設定を複製したり、環境を混乱させたりする必要がなく、設定は通常のWebアプリケーションと同じメカニズムを使用して読み込まれるため、同じであることが保証されます。

于 2012-05-08T08:38:50.417 に答える