見出し画像

【IT】Djangoでの環境変数

皆さま
こんにちは

Djangoを外部公開やソースをGit等にアップする際に
パスワード等の情報をsettings.pyから取り除く方が望ましいです。

方法として
OSの環境変数を読み込ませることが簡単です。

事前準備として「python-dotenv」モジュールを導入します。
※固有の実行環境へ導入を想定してますので仮想環境へ入ってから
 インストールします。
 (仮想環境は、python -m venv myvenv等で作成出来ます。)

$ source myvenv/bin/activate
(myvenv) $ pip install python-dotenv

次にsettings.pyに以下内容を追記します。
今回は、SECRET_KEYとDEBUGとALLOWED_HOSTSで利用します。

# 追記、変更箇所のみ記載します。
import os
from dotenv import load_dotenv
load_dotenv(verbose=True)

##SECRET_KEY = 'django-insecure-xxxxxxxxxxx'
SECRET_KEY: str | None = os.getenv('SECRET_KEY')

##DEBUG = True
DEBUG: bool = os.getenv('DEBUG', 'False') == 'True'

##ALLOWED_HOSTS = []
ALLOWED_HOSTS: list[str] = os.getenv(
    'ALLOWED_HOSTS', 'localhost,127.0.0.1').split(',')

.envファイルをmanage.pyと同じディレクトリ配下に作成します。
例として以下の内容で作成しました。個々の環境へ合わせて記載ください。

SECRET_KEY=abcdefg12345678zzzzz
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1,192.168.123.123

<補足>
load_dotenv()をsettings.py に記載しております。
そのため、そのスクリプトと同じディレクトリ
(あるいは、より上位のディレクトリ)に配置された
.env ファイルの内容を読み込み、環境変数に反映されます。
今回は、プロジェクト直下のディレクトリに配置しております。

では


この記事が気に入ったらサポートをしてみませんか?