HOWTO · Django

Django インポート設定

この記事では、Django アプリでカスタム設定をインポートする方法を説明します。

このページの内容

このチュートリアルでは、Django プロジェクトに設定をインポートするために使用する django.conf インポート設定 と インポート設定 の違いを学びます。

まず、Django アプリの設定ファイルに何が含まれているかを理解しましょう。 したがって、settings.py ファイルは、Django アプリの構成を含む Django プロジェクトの通常の Python ファイルです。

アプリの構成がない場合も空になる可能性がありますが、決して起こりません。

Django アプリのデフォルト設定

新しい Django プロジェクトを作成すると、すべての初期設定を含む settings.py ファイルが含まれます。 ユーザーは、以下のコードを使用して、デフォルト設定ファイルを他のファイルにインポートできます。

from django.conf import settings

ここで、django.conf は settings オブジェクトをインポートするモジュールです。 ユーザーが以下のような設定をインポートしようとしても、うまくいきません。

# This won't work
from django.conf.settings import SECRET_KEY

django.conf モジュールから設定をインポートした後、ユーザーは以下のように使用できます。

from django.conf import settings
# Do something with the properties of the settings object
if settings.SECRET_KEY:
    # some code

このようにして、グローバル設定ファイルから設定をインポートし、それらを別のファイル内で使用できます。

Django アプリのカスタム設定

常にデフォルト設定を使用する必要はありません。 ユーザーは、要件に応じて設定をカスタマイズすることもできます。

最初に、デフォルト設定の値を変更する方法を見ていきます。

開発者は、Python の configure() メソッドを使用して settings オブジェクトのプロパティの値を変更できます。 configure() メソッドを呼び出すときに、settings オブジェクトを参照として取得することにより、必要な数の引数を渡すことができます。

設定プロパティと値は、ユーザーが以下のコードで確認できる単一の引数としてカウントされます。

from django.conf import settings
settings.configure(SECRET_KEY= < New_Security_key >)

ユーザーが以下のようなデフォルト設定を変更しようとすると、エラーが発生します。

from django.conf import settings

# This code will raise an error
if settings.SECRET_KEY:
    settings.SECRET_KEY = "New Key"

また、ユーザーは設定用の新しいファイルを作成し、Django アプリの要件に従って内部にカスタム設定を追加できます。 手動設定用の新しいファイルを作成するときは、ファイル名のすべての文字が大文字であり、その名前の別のファイルがまだ存在していないことを確認してください。

ユーザーが custom_settings.py ファイルを作成したとします。 次に、ユーザーは、以下のコードで表される設定から設定をインポートできます。

また、ユーザーは configure() メソッドを使用してデフォルト設定をオーバーライドする必要があります。

from django.conf import settings
from custom_settings import custom_settings

settings.configure(default_settings=custom_settings)

このようにして、他のファイルから設定をインポートし、Python の configure() メソッドを使用してそれらをオーバーライドすることで、Django アプリのデフォルト設定を変更できます。

django.confのインポート設定から VS. インポート設定

ここで、django.conf からのインポート設定とインポート設定の違いを明確にしましょう。

そのため、ユーザーが from django.conf import settings を使用して設定をインポートしようとすると、アプリはデフォルト設定、つまりグローバル設定ファイルから設定をインポートします。

アプリのカスタム設定用に、他にも複数のファイルがある場合があります。 そのため、import settings を使用して設定をインポートすると、アプリはシステムで最初に見つかった設定ファイルをインポートします。

そのため、from django.conf import settings を使用してグローバル設定ファイルから問題なく設定をインポートすることをお勧めします。