私は django-1.6 を初めて使用します。 で django サーバーを実行するとDEBUG = True
、問題なく動作します。しかし、設定ファイルでDEBUG
に変更するとFalse
、サーバーが停止し、コマンド プロンプトに次のエラーが表示されます。
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
ALLOWED_HOSTS
に変更した後["http://127.0.0.1:8000",]
、ブラウザで次のエラーが表示されます:
Bad Request (400)
デバッグモードなしで Django を実行することは可能ですか?
ベストアンサー1
のALLOWED_HOSTS
リストには URLではなく、完全修飾ホスト名を含める必要があります。ポートとプロトコルは省略してください。 を使用している場合は、次の内容もリストに追加します。127.0.0.1
localhost
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
任意の*
ホストに一致させるためにも使用できます:
ALLOWED_HOSTS = ['*']
ドキュメントからの引用:
このリストの値は完全修飾名 (例
'www.example.com'
) にすることができます。その場合、リクエストのHost
ヘッダーと正確に一致します (大文字と小文字は区別されません。ポート は含まれません)。ピリオドで始まる値はサブドメイン ワイルドカードとして使用できます。 は、、、および のその他のサブドメインと'.example.com'
一致します。 の値は任意のものと一致します。この場合、ヘッダーの検証を独自に提供する必要があります (ミドルウェアなどで提供する場合、このミドルウェアは の最初にリストされている必要があります)。example.com
www.example.com
example.com
'*'
Host
MIDDLEWARE_CLASSES
太字の強調は私によるものです。
ステータス400の応答は、SuspiciousOperation
例外ホスト ヘッダーがリスト内のどの値とも一致しない場合に発生します。