最近はBAEでプログラミングする方法を勉強しています。BAE は GAE のようなクラウド プラットフォームです。Python 2.7 と MySQL をサポートしています。しかし、問題があります。BAE はDATABASE
要求で情報を提供します。これらの設定は次のように取得できます。
port = request.META['HTTP_BAE_ENV_ADDR_SQL_PORT']
しかし、実行時に設定を構成するにはどうすればよいDATABASES
ですか?
次のように、この問題のミドルウェアを作成しようとしました。
from django.conf import settings
class bae_database(object):
def process_request(self, request):
BAE_DB = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'django', # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': 'localhost', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '3306', # Set to empty string for default. Not used with sqlite3.
},
}
settings.DATABASES = BAE_DB
次に、settings.py
ファイルにこのミドルウェアを追加しMIDDLEWARE_CLASSES
て設定しDATABASES = {}
ます。その結果、次のエラー メッセージが表示されます。
You haven't set the database ENGINE setting yet.
実際、ミドルウェアは動作します.Djangoエラーページの設定部分に次のように表示されるためです:
DATABASES
{'default': {'ENGINE': 'django.db.backends.mysql', 'HOST': 'localhost', 'NAME': 'django', 'PASSWORD': '********************', 'PORT': '3306', 'USER': 'root'}}
理由はわかりませんが、DATABASES
属性を変更しましたが、だめです。私を助けてください。