😺

.envファイルについて(django)

2023/07/10に公開

環境変数とは

プログラムが自分の実行環境について知るための、設定情報や機密情報の値のことです。
プログラムが起動する時に設定されて、その値によってプログラムの動作が変わることがあります。

なぜ必要か

  • Webアプリケーションを開発する時、開発環境と本番環境で動作が異なることがある。
    →環境によって異なる設定情報をプログラムに知らせる必要がある
  • 環境変数などの情報をハードコード(プログラムのソースコードに直接書き込むこと)すると、他の人と共有する時や本番環境にデプロイする時などに問題が起こることがある(他の人の環境に適応しないから)

.envファイルとは

.envファイルには、アプリケーションが実行される環境によって変わる可能性のある環境変数を書きます。

.envファイルに記載するものを詳しく

DEBUG=True

Djangoのデバッグモードを有効にします。デバッグモードを有効にすると、エラーメッセージが詳細に表示されるなど開発に役立ちます。ただ、本番環境ではセキュリティの面から無効にします。

SECRET_KEY=

Djangoの秘密鍵です。(公開鍵/秘密鍵という意味での'秘密鍵'ではありません。)DjangoのSECRET_KEYは以下のような役割があります。

  • データが改竄されていないかチェックする
  • CSRFトークンの生成と検証
  • パスワードリセットトークンの生成

MySQLを使用する場合:

DB_NAME=
USER_NAME=
PASSWORD=
HOST=127.0.0.1
  • 上記はデータベースシステムに、MySQLを使用した時のものです。(DjagnoのデフォルトのDBは、SQLite3です。) SQLiteはサーバーレスですが、MySQLはサーバーベースなので、接続するには「サーバーのアドレス、ユーザー名、パスワード、データベース名」が必要となります。

  • HOST=127.0.0.1(データベースサーバーのIPアドレス)は、アプリケーションがどこで実行されるべきかを示しています。127.0.0.1はlocalhostを意味するので、自分のPC上(ローカル)で実行している場合に使います。開発中にはデータベースはローカルマシン上にありますが、本番環境ではクラウド上にあるので、.envファイルにこの情報を記載します。

Firebaseを使用する場合:

FIREBASE_URL=
FIREBASE_CERTIFICATE=

HTTP基本認証を使用する場合:

BASIC_ID = 
BASIC_PASSWORD = 
BASIC_PAGE_ID = 
BASIC_PAGE_PASSWORD = 

Discussion