Djangoアプリのsettings.pyにはSECRET_KEYやデータベース情報などの機密情報が記載されています。これらを管理するツールとして便利なdjango-environを使ってみましょう。
Djangoアプリでの機密情報の扱いに関しては次の記事もご参照ください。
DjangoアプリのSECRET_KEYなどの機密情報を別ファイルで管理
この『Djangoアプリの機密情報を別ファイルで管理する』ためのモジュールがdjango-environです。
目次
django-environのインストール
django-environは外部モジュールなのでインストールする必要があります。
Djangoアプリの動作環境で次のコマンドを実行します。
pip install django-environ

インストールはこれだけです。
.envファイルの作成と記述
manage.pyと同じ階層(このサイトのDjango構成ではプロジェクト直下)に「.env」という名前でファイルを作成します。
このファイルに環境変数などの機密情報を分離します。
SECRET_KEY=django-insecure-************************************* DEBUG=True DATABASE_ENGINE=使用するDBのエンジン(sqlite3ならdjango.db.backends.sqlite3) DATABASE_DB=データベース名 DATABASE_USER=ユーザー名 DATABASE_PASSWORD=パスワード DATABASE_HOST=ホスト名 DATABASE_PORT=ポート番号
=の前後に半角スペースが入ったり、文字列をシングルクォーテーションで囲っていたりするとエラーになるので注意しましょう。
settings.pyで環境変数を呼び出す
.envファイルに分けた変数をsettings.pyで呼び出します。
import os
import environ
env = environ.Env()
env.read_env('.env')
SECRET_KEY = env('SECRET_KEY')
DEBUG = env('DEBUG')
DATABASES = {
'default': {
'ENGINE': env.get_value('DATABASE_ENGINE', default='django.db.backends.sqlite3'),
'NAME': env.get_value('DATABASE_DB', default=os.path.join(BASE_DIR, 'db.sqlite3')),
'USER': env.get_value('DATABASE_USER', default='django_user'),
'PASSWORD': env.get_value('DATABASE_PASSWORD', default='password'),
'HOST': env.get_value('DATABASE_HOST', default='localhost'),
'PORT': env.get_value('DATABASE_PORT', default='5432'),
}
}
これだけです。







