django-environ
shimizukawa.iconさっそくプロジェクトに適用してみたけど、 django-environ とても良い
string, integer, boolean の型を指定して値を参照できる
booleanの解釈についてプロジェクト個別のルールを持たなくて良い
code:settings.py
import environ
env = environ.Env()
DEBUG = env.bool('DEBUG')
ALLOWED_HOSTS = env.list('ALLOWED_HOSTS')
if DEBUG:
INTERNAL_IPS = env.list('INTERNAL_IPS')
Djangoに特化したサポート機能が統合されているので、1ライブラリで完結する
code:settings.py
DATABASES = {
'default': env.db_url('DATABASE_URL')
}
ENV_FILE=.env.local python manage.py runserver で実行して適用する例
code:settings.py
import environ
root = environ.Path(__file__) - 3 # リポジトリルートPATH
env = environ.Env()
if env('ENV_FILE', default=None):
# ENV_FILE 環境変数で.envファイルを指定した場合
env.read_env(env('ENV_FILE'))
elif pathlib.Path(root('.env')).is_file():
# リポジトリrootに .env がある場合 (カレントではない)
env.read_env(root('.env'))
else:
pass # use environment variables without .env file
This module is a merge of:
and inspired by:
shimizukawa.iconの利用例
使ってみたという話