DEBUG = Falseの場合、DjangoはBad Request (400)を返します。質問する

DEBUG = Falseの場合、DjangoはBad Request (400)を返します。質問する

私は 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.1localhost

ALLOWED_HOSTS = ['127.0.0.1', 'localhost']

任意の*ホストに一致させるためにも使用できます:

ALLOWED_HOSTS = ['*']

ドキュメントからの引用:

このリストの値は完全修飾名 (例'www.example.com') にすることができます。その場合、リクエストのHostヘッダーと正確に一致します (大文字と小文字は区別されません。ポート は含まれません)。ピリオドで始まる値はサブドメイン ワイルドカードとして使用できます。 は、、、および のその他のサブドメインと'.example.com'一致します。 の値は任意のものと一致します。この場合、ヘッダーの検証を独自に提供する必要があります (ミドルウェアなどで提供する場合、このミドルウェアは の最初にリストされている必要があります)。example.comwww.example.comexample.com'*'HostMIDDLEWARE_CLASSES

太字の強調は私によるものです

ステータス400の応答は、SuspiciousOperation例外ホスト ヘッダーがリスト内のどの値とも一致しない場合に発生します。

おすすめ記事