Django-インポートdjango.conf.settingsとインポート設定の違い


99

Djangoアプリの次のインポート文の基本的な違いは何ですか?

import settings

そして

from django.conf import settings

1
+1 Django開発の初心者にとって非常に興味深い質問です。

回答:


134
import settings

Djangoプロジェクトのsettings(.py)モジュールをインポートします(もちろん、アプリケーションの「ルート」パッケージからこのコードを記述している場合)

from django.conf import settings

django.confパッケージ(Djangoが提供するファイル)から設定オブジェクトをインポートします。これは重要です。

[..]コードは、global_settingsまたは独自の設定ファイルからインポートしないでください。django.conf.settingsは、デフォルト設定とサイト固有の設定の概念を抽象化します。単一のインターフェースを提供します。また、設定を使用するコードを、設定の場所から切り離します。

更新:独自の設定を定義する場合は、ドキュメントのこの部分を参照してください


4
ちなみに、global_settingsはdjango.confパッケージ内の別のモジュールです。ドキュメンテーションが言うように、それを使用しないでください。

3
from django.conf import settings単体テスト中に設定を上書きできるようにする場合も、使用することが重要です。
Joris

4
また、すべての設定名は大文字でなければなりません。あなたのVARを持っている場合つまり、my_varあなたの設定で、これは失敗しますfrom django.conf import settings... settings.my_var。名前を付ければMY_VAR成功します!
nik_m 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.