1. ホーム
  2. パイソン

Djangoアプリケーション設定オブジェクト django.conf.settingsの説明

2022-03-02 22:39:06

Django アプリケーションの様々な設定パラメータは、多くの場合、設定ファイル内にあります。

設定ファイルはJavaアプリケーションと異なり、xmlファイルやプロパティファイルとなることが多く、Javaのクラスファイルとは全く異なるものです。しかし、 Django アプリの設定ファイルは Python モジュールと同等であり、 Python の構文仕様に準拠しています。

Django の設定ファイルは、実質的に Django の django.conf.settings オブジェクトを設定することになります。

Django アプリケーションの場合、何も設定されていないと、コマンド実行時に以下のようなプロンプトが表示されます。

なお、設定が正しく行われていないため、Djangoコアのコマンドのみがリストアップされます(error: Requested setting INSTALLED_APPS, but settings are not 環境変数 DJANGO_SETTINGS_MODULE を定義するか、設定にアクセスする前に settings.configure() を呼び出す必要があります)。

以下は、Django アプリケーションでの設定方法を、優先順位の低いものから順番に説明します。
1. Djangoのデフォルト設定ファイル

$PYTHON_HOME/site-packages/django/conf/global_settings.py

2. OS 環境変数 DJANGO_SETTINGS_MODULE は、設定ファイルへのパスを指定します。

myFirstDjangoSite プロジェクトのメインモジュールのための設定ファイル myFirstDjangoSite.settings.py は、以下のように最初に与えられます。

ALLOWED_HOSTS = ['www.mydomain.com']
DEBUG = False
DEFAULT_FROM_EMAIL = '[email protected]'

設定ファイルの内容は、一般的に6つのセクションに分けることができます。Core、Auth、Message、Session、Site、Static Files、などです。詳しくは記事末尾のリンク2をご参照ください。

  • Linuxシステム

export DJANGO_SETTINGS_MODULE=myFirstDjangoSite.settings です。

  • Windowsシステム

DJANGO_SETTINGS_MODULE=myFirstDjangoSite.settings を設定します。

3. Djangoプロジェクト内のデフォルトの設定ファイル

my_project/$my_project/ settings.py

4. Djangoアプリの起動時にパラメータを設定する

  • Linuxシステム

$PYTHON_HOME/site-packages/django/bin/django-admin runserver --settings=myFirstDjangoSite.settings

  • Windowsシステム

%PYTHON_HOME%/Scripts/django-admin runserver --settings=myFirstDjangoSite.settings

5. Pythonアプリのコードで、実行時にパラメータを設定する

from django.conf import settings
settings.configure(default_settings=myapp_defaults, DEBUG=True) #recommended
settings.DEBUG = True #not recommended

最後に、現在の設定を確認するために
python manage.py diffsettings

参考リンク

https://docs.djangoproject.com/en/1.11/topics/settings/
https://docs.djangoproject.com/en/1.11/ref/settings/