【Python】Djangoで開発環境と本番環境を分けれるように環境変数をdjango-environで管理する

こんにちは、nishi_talk(@nishi_talk)です。
Djangoで開発環境と本番環境を分けれるように環境変数をdjango-environで管理する方法をご紹介します。

パッケージをインストール

$ pip install django-environ

環境変数を設定

.envファイルを作成して、中に環境変数を設定します。
DEBUG=True
ALLOWED_HOSTS=[aaa,bbb,ccc]
SECRET_KEY=xxxxxxxxxxxxx
DATABASE_URL=mysql://user:password@host:port/detabasename
DATABASE_URLはこんな感じで記述します。
DATABASE_URL=mysql://{ユーザー名}:{パスワード}@{ホスト}:{ポート}/{データベース名}
あとはdjangoのsettings.pyの記述を変更
import os
import environ
 
env = environ.Env(DEBUG=(bool, False),)
environ.Env.read_env('.env')
 
SECRET_KEY = env('SECRET_KEY')
DEBUG = env('DEBUG')
ALLOWED_HOSTS = env.list('ALLOWED_HOSTS')
 
DATABASES = {
    'default': env.db()
}
DATABASE_URLという環境変数で一行書くことでDBの定義ができるっぽいです。