利用用途
- settings.pyにデータベースやセキュリティトークンの情報が記載されているのはあまり良くないため、envファイルで管理できるようにする
settings.pyファイルの設定(デフォルト)
- djangoのデフォルトの設定ファイルは下記のようにsettings.pyファイルにベタ書きされているので、gitにアップするとそのままパスワードの情報などアップされてしまう。
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '<シークレットキー>'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '<DB>',
'USER': '<ユーザー名>',
'PASSWORD': '<パスワード>',
'HOST': '<ホスト名>',
'PORT': '3306',
}
}
インストール
python3.9 -m pip install python-decouple
python3.9 -m pip install dj_database_url
envファイルで管理する
SECRET_KEY=<シークレットキー>
DEBUG=False
DATABASE_URL=mysql://<ユーザー名>:<パスワード>@<ホスト名>:3306/<DB>
settings.pyファイルの設定(envを参照した場合)
- 下記のように記述を変更することで.envファイルで管理することができる。
from decouple import config
import dj_database_url
SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG')
DATABASES = {
'default': dj_database_url.config(
default=config('DATABASE_URL')
)
}