とほほのDjango入門 (settings.py)

トップ > Django入門 > settings.py

settings.py

settings.py で定義する主なパラメータについて説明します。詳細は下記のリファレンスを参照してください。

BASE_DIR

プロジェクトのベースフォルダを示します。

settings.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SECRET_KEY

暗号化やハッシュ化で用いられる秘密鍵を指定します。プロジェクト外に公開しないでください。manage.py startproject でプロジェクトを作成する際に、ランダムな値が設定されます。ロードバランサ配下に複数の Django サーバを配置する際には、同じ値を指定してください。

settings.py
SECRET_KEY = 'pej^q2ql$$#bzg#crh6k_9(p=%p)&6x(kwh@nos&=!$ej&60fh'
DEBUG

デバッグモードの有効(True)、無効(False)を指定します。デバッグモードではエラー発生時にブラウザにエラーの詳細情報を表示します。また、実行した SQL クエリをすべてメモリ上に記憶したり、キャッシュを無効にしたりなど、速度やリソースを犠牲にしてデバッグ向けにカスタマイズされた状態で動作します。API, KEY, PASS, SECRET, SIGNATURE, TOKEN などの秘密にすべきキーワードを含む値は表示されませんが、攻撃に有益な情報を与えてしまうため、本番環境では DEBUG に True を指定してはなりません。

settings.py
DEBUG = True
ALLOWED_HOSTS

サーバが受理するサーバアドレスを指定します。クライアントから送られてきた Host: ヘッダの値と比較され、一致しない場合は 400 エラーを返します。'*' を指定することもできますが、この値を正確に記述することは「Hostヘッダインジェクション攻撃」に対して有効です。

settings.py
ALLOWED_HOSTS = ['www.example.com',]
INSTALLED_APPS

アプリケーションの一覧を定義します。データベースのマイグレーションファイル作成の際などに利用されます。

settings.py
INSTALLED_APPS = [
    'books.apps.BooksConfig',
    'django.contrib.admin',
       :
]
MIDDLEWARE

ミドルウェアの一覧を定義します。Django は、HTTP 要求を受け取ったり、HTTP 応答を返却する際に、ここで定義したミドルウェアを順次実行します。

settings.py
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
        :
]
ROOT_URLCONF

ルートの urls.py を指定します。下記の例では、BASE_DIR 配下の ./config/urls.py を示します。

settings.py
ROOT_URLCONF = 'config.urls'
TEMPLATES

テンプレートに関する定義を行います。BACKEND はテンプレートエンジン、DIRS はテンプレートを探す対象のフォルダリスト、APP_DIRS はアプリケーションフォルダ配下を探すか否かのフラグ、OPTIONS には各種オプション情報を定義します。context_processors は、テンプレートで参照可能な変数を生成するプロセッサ群です。

settings.py
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
WSGI_APPLICATION

WSGI のアプリケーションを指定します。下記は ./config/wsgi.py の中の application を示しています。

settings.py
WSGI_APPLICATION = 'config.wsgi.application'
DATABASES

データベースに関する定義を行います。SQLite3, MySQL(MariaDB), PostgreSQL, Oracle などを利用可能です。

settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
AUTH_PASSWORD_VALIDATORS

パスワードのバリデーションルールを指定します。下記では、ユーザ名と似たパスワード、パスワード長、よくあるパスワード、数値のみのパスワードをチェックしています。

settings.py
AUTH_PASSWORD_VALIDATORS = [
    {'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},
    {'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',},
    {'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',},
    {'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',},
]
LANGUAGE_CODE

デフォルトの言語を指定します。

settings.py
LANGUAGE_CODE = 'ja'
LANGUAGES

言語選択の選択肢として表示する言語を指定します。

settings.py
LANGUAGES = [
    ('ja', _('Japanese')),
    ('en', _('English')),
]
LOCALE_PATHS

ロケール情報を格納するフォルダ名を指定します。

settings.py
LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)
TIME_ZONE

デフォルトのタイムゾーンを指定します。

settings.py
TIME_ZONE = 'Asia/Tokyo'
USE_I18N

多言語化機能を有効にするか否かを指定します。I18N は internationalisation の略です。

settings.py
USE_I18N = True
USE_L10N

日付フォーマットなどのローカライゼーション機能を有効にするか否かを指定します。L10N は localization の略です。

settings.py
USE_L10N = True
USE_TZ

タイムゾーン変換機能を有効にするか否かを指定します。

settings.py
USE_TZ = True
STATIC_URL

スタティックファイルの URL を指定します。

settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS

スタティックファイルが格納されるディレクトリを指定します。

settings.py
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

Copyright (C) 2019 杜甫々
初版:2019年7月15日 最終更新:2019年7月15日
http://www.tohoho-web.com/django/settings.html