見出し画像

DJANGOを用いた開発で、環境変数を設定するためのライブラリを紹介します。

皆さんこんにちは!マナパンダです。
今回は、「DJANGOを用いた開発で、環境変数を設定するためのライブラリ」について紹介したいと思います。

普段のDjango開発をもっと効率的に行いたいと思っている方は、ぜひ最後まで読んでください。


環境変数とは

まず初めに、環境変数について簡単に説明します。

アプリ開発における「環境変数」とは、アプリケーションが動作する環境(開発環境、テスト環境、本番環境など)に応じて変化する値を格納するための変数です。これらの変数は、アプリケーションが実行されるシステム上で設定され、アプリケーションのコード内から参照されます。環境変数を使用することで、アプリケーションの設定を柔軟に変更でき、セキュリティを強化し、開発の効率を高めることができます。

環境変数の使用例

  • データベース接続情報: 開発環境ではローカルのデータベースを使用し、本番環境ではクラウドにデプロイされたデータベースを使用する場合、これらの接続情報(ホスト名、ポート番号、ユーザー名、パスワード)を環境変数に格納します。

  • APIキー: 外部サービスのAPIを使用する場合、そのAPIキーをソースコード内に直接記述するのではなく、環境変数に設定しておくことでセキュリティを保ちます。

  • 環境設定: アプリケーションが動作する環境(development, test, production)に応じて、ログの詳細度やデバッグモードの有無などを制御します。

パスワードやAPIキーなどを直接記述したファイルを、Githubやサーバーに公開してしまうと、ほかの人にも見られるようになってしまいとても危険です。なので、ローカルで開発する分には問題ないですが、AWSやHerokuなどのVPSでデプロイをする際には、環境変数の設定は必須です。

django-environ

そこで、Djangoの開発で環境変数を設定できるライブラリが「django-environ」です。環境変数は、自身のPCの「設定」から設定することもできますが、「django-environ」を使用することで開発環境内だけで有効な環境変数を設定できます。

ターミナルで「django-environ」をインストール

「django-environ」を使用するには、ターミナルで以下のコマンドを実行してください。

pip install django-environ

インストール出来たら、環境変数を設定するファイルを作成します。私の場合は、普段から「secrets」フォルダーの中に「.env」ファイルを作成して、記述しています。

.env」ファイルに以下のように記述します。

例:

SECRET_KEY=シークレットキー
DEBUG=True
ALLOWED_HOSTS=*
DB_NAME=データベースのユーザー名
DB_PASSWORD=データベースのパスワード

これで環境変数は設定できるので、「setting.py」ファイルでこれらの内容をインポートします。

「setting.py」ファイルの記述例:

import environ
...(略)
env = environ.Env()
env.read_env(BASE_DIR / '.env.dev')
...(略)
SECRET_KEY = env.str('SECRET_KEY')
DEBUG = env.bool('DEBUG', default=False)
ALLOWED_HOSTS = env.list('ALLOWED_HOSTS', default=[])
...(略)

こうすることで、直接パスワードやキーを記述しなくて済むのでセキュリティ対策になります。

まとめ

いかがだったでしょうか?
今回は、「DJANGOを用いた開発で、環境変数を設定するためのライブラリ」について紹介しました。

ここで一つ補足なのですが、Githubにアップロードするときは、今回作成した「secrets」フォルダーはアップロードしないように注意してください。

ぜひ参考にしてください!

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