2013-11-14 15 views
32

ほとんどの人はfrom django.conf import settingsを読んでいますが、djangoプロジェクトでimport settingsファイル。誰でもその違いを説明できますか?Djangoプロジェクトの `django.confのインポート設定`と `インポート設定`との違い

+0

django.confの設定は、djangoのデフォルトまたは「グローバル」の設定で、プロジェクトベースの設定で上書きすることができます。 – Jingo

+1

決して2番目のフォームを使用しないでください。最初のものが唯一正しいものです。 –

+1

しかし、なぜ2番目のものを使用しないのですか? – tzenderman

答えて

37

は、通常sys.pathにあるsettings.pyという名前の最初のpythonモジュールをインポートします(デフォルトのdjango設定で)。 djangoのデフォルト設定(django.conf.global_settings)を上書きするサイト定義の設定ファイルにのみアクセスできます。

設定ファイルに指定されていない有効なdjango設定にアクセスしようとすると、エラーが発生します。

django.conf.settingsはファイルではなく、概念、デフォルト設定、サイト固有の設定を抽象化するクラスです。 Djangoは、from django.conf import settingsを使用すると、他のチェックも行います。

django docsで見つけることもできます。

これが役に立ちます。

+3

インポート設定'' sys.path'にある 'settings.py'という名前の最初のPythonモジュールをインポートします。これは環境変数 "DJANGO_SETTINGS_MODULE"で検索される "サイト定義の設定ファイル"ではなく、単に任意のPythonパッケージまたはモジュールにすることができます。 –

+0

@ brunodesthuilliersありがとうございます。あなたの訂正を意識して私の答えを更新します。 – juliocesar

7

from django.conf import settingsが適しています。

私は同じdjangoプロジェクト( "live"、 "dev")に異なる設定ファイルを使用します。最初のものは実行中のものを選択します。

+1

/最初の方が良い/最初の方が正しい/ –

関連する問題