Djangoのsettingsを分割

作成:2023/04/20
更新:2023/08/03

Django==4.2

変更する箇所

  1. settings.py
  2. manage.py
  3. wsgi.py
  4. asgi.py


プロジェクト名:backend

1.settings.py
settingsディレクトリを作成
その中に、base.py、local、producionで分割する

settings
 - base.py
 - local.py
 - production.py


settings.pyの中身をbase.pyにコピー

# base.py

# 階層変わったぶん変更する
- BASE_DIR = Path(__file__).resolve().parent.parent
+ BASE_DIR = Path(__file__).resolve().parent.parent.parent


あとは開発と本番で分けていく。

# local.py 

# 最初にbaseから全て読み込む
from .base import *

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True



2.manage.py
3.wsgi.py
4.asgi.py
3つ同じ部分を変更する
backendはプロジェクト名

- os.environ.setdefault("DJANGO_SETTINGS_MODULE", "backend.settings")
+ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "backend.settings.local")


必要に応じてgitignoreも設定。