【Django】環境変数を設定する
コマンド一つ一つに環境変数を設定するのすごく面倒臭くなったので。
django-environをインストール
pip install django-environ
manage.pyと同じディレクトリに.envを作成
.env
DB_HOST=localhost DB_NAME=postgres DB_USER=postgres DB_PASSWORD=**** SECRET_KEY=****
settings.pyで環境変数を使ってみる
import environ import os BASE_DIR = Path(__file__).resolve().parent.parent env = environ.Env() environ.Env.read_env(os.path.join(BASE_DIR, '.env')) SECRET_KEY = env('SECRET_KEY')
既に設定してある環境変数を消しても起動できたら成功。
私は使っていませんが、他に色んな機能があるっぽいので気になる方はこの記事の下にあるgit見てください。
例
DATABASES = { # read os.environ['DATABASE_URL'] and raises # ImproperlyConfigured exception if not found # # The db() method is an alias for db_url(). 'default': env.db(), # ここ # read os.environ['SQLITE_URL'] 'extra': env.db_url( 'SQLITE_URL', default='sqlite:////tmp/my-tmp-sqlite.db' ) }
追記:env('DEBUG')などで渡される変数は文字型なので注意