0

django/conf/global_settings.py で

DEBUG=False

私のプロジェクトで settings.py

DEBUG=True

しかし、global_settings.pyからDEBUGにアクセスすると

from django.conf import settings
print settings.DEBUG   //True

その印刷 True は False ではありません。なぜですか?

そして私の2番目の質問はそれです

Django が各プロジェクト設定ファイル (myproj/setting.py) に DEBUG=True を提供する必要がある場合、グローバル設定で DEBUG=False ではなく DEBUG=True を作成できないのはなぜですか?

4

1 に答える 1

0

[1] グローバル設定は、 django のドキュメントsettings.pyで詳しく説明されているように、ファイルによって上書きされます。

ドキュメントから:

Django が設定をコンパイルする際に使用するアルゴリズムは次のとおりです。

  • global_settings.py から設定を読み込みます。
  • 指定された設定ファイルから設定を読み込み、必要に応じてグローバル設定をオーバーライドします。

また、グローバル設定をインポートしていると思われる場合、from django.conf import settings実際にはモジュールではなくオブジェクトにアクセスしており (なぜ から実行できないのかdjango.conf.settings import DEBUG)、そのオブジェクトは上記のアルゴリズムの出力です。

[2] DEBUG=True(ファイルに含めるのではなくglobal_settings.py) プロジェクトごとに指定する必要があるのは、セキュリティ上の理由によるものです。

デバッグ パラメーターは、プロジェクトの多くの個人情報を表示します。これは、開発中のデバッグには役立ちますが、本番環境では決してアクセスできないはずです。したがって、Django では、ユーザーが明示的に enable を指定する必要がありますDEBUG

于 2013-06-07T08:37:32.697 に答える