
こんにちは、TAKです。
今回は、djangoを使って環境変数を効率的に管理する方法を紹介したいと思います。
・ ファイル内に含まれているSECRET KEYを別管理したい
・ データベース接続に必要な情報をファイル内にハードコードしたくない
こんな時に使える方法になります。
具体的には、djangoファイル内の「settings.py」に含まれる以下4つの情報を「django-environ」という方法を用いて管理していきます。
・ SECRET KEYに関する情報(①)
・ データベース接続に必要な機密情報(②)
・ 開発環境と本番環境で切替が必要な情報(DEBUG(③)やALLOWED_HOST(④))
【こんな人に読んで欲しい記事です】
● djangoファイル内の環境変数を効率的に管理したいと考えている方
● django-environという方法を使ってみたい方
僕も、個人開発をしているときに、「本番環境(サーバー内)にDBのパスワードはハードコードしたくないな」と思っていましたが、今回の方法ですべて解決しました。
同じように、「環境変数をうまく管理したいけど、具体的な方法がわからず悩んでいる」といった方は、参考にしてみてください。
【ステップ①】対象コードの確認
まず最初に、先ほど示した「4つ」の情報がどこに記載されているか確認しておきましょう。
すべて「settings.py」ファイル内に記載されています。
コード箇所を以下画像で確認しておいてください。


最終的に、この部分を「django-environ」を用いて修正していきます。
【ステップ②】「.env」ファイルの設定
続いて、環境変数を記載するファイル「.env」を作成していきます。
手順は以下の通りです。
・ 「.env」ファイルを「manage.py」と同じ階層に新規作成する
・ 「.env」ファイル内に環境変数を移行する
イメージとしては、以下のような感じです。

今回は「開発環境」を前提としていますが、「本番環境」でもサーバー内に同じようなファイルを作成しておけば、簡単に管理することが出来ます。