【Flask】環境変数とは

flaskでは環境変数を使う事が出来るぽい

 

プログラマなら環境変数が何か大体わかると思いますが

 

例えば

 

・サーバーのIPアドレス

・データベースのパスワード

・APIキー

・本番環境用の設定

・メールの送信有無

・ログの書き込みパス

 

等々、環境変数を設定する事で色々な大事な設定を管理出来ます。

 

環境変数は、システムやアプリケーションの動作に影響を与える設定値を格納するための変数です。

これらの変数は、オペレーティングシステムの環境に保存され、プログラムからアクセスすることができます。

環境変数を使用することで、コード内に機密情報や環境固有の設定を直接記述せずに済むため、セキュリティや柔軟性が向上します。

例えば、開発環境と本番環境で異なるデータベースの接続情報を環境変数で管理することができます。

 

Flaskでも環境変数を使用出来るらしいので、早速使ってみます。

 

●環境変数の設定方法

 

flaskの環境変数の保存方法はいくつかやり方があるようですが

 

今回は一番基本的な「.env」ファイルを使ってみます。

 

まず、プロジェクトのルートディレクトリに「.env」というファイルを作成します。

 

root

├── app.py

├── .env

 

「.env」ファイルに環境変数を定義する

例えば、以下のように環境変数を定義します。

 

NAME=kuroneko

 

NAMEという環境変数に「kuroneko」という値を設定しました。

 

次に、今設定した「NAME」を読み込んでみます。

 

●環境変数の読み込み

 

環境変数を読み込むには、Pythonの「dotenv」モジュールを使用します。

 

dotenvをインストールしていない場合はインストールして

 

py -m pip install dotenv

 

dotenvを使う事で「.env」ファイルを読み込む事が出来ます。

あとは「os」モジュールも使います。

以下で取得出来ます。

 

from dotenv import load_dotenv

import os

load_dotenv()




name = os.getenv("NAME")

print(name)

実行してみると

 

kuroneko

 

取得成功!!!

 

環境変数を使う事で、コード内に機密情報や環境固有の設定を直接記述せずに済むため、セキュリティや柔軟性が向上します。

例えば、開発環境と本番環境で異なるデータベースの接続情報を環境変数で管理することができます。

 

 

肝は

 

from dotenv import load_dotenv

load_dotenv()

 

ここです。

load_dotenv()

を使う事で「.env」ファイルを読み込む事が出来ます。

 

●環境変数を使う理由

 

よくあるダメダメなコードでは、ファイルで

 

PROD = True

 

とか設定していて、手作業でTrueとFalseを切り替えるみたいな事をやっている現場を知っていますが

 

大事故の元です

 

環境変数で設定しておけば事故を防げます。

 

PROD = false

 

のまま本番環境上げたらどうなります?

 

大事故発生します

 

お客さんの注文が全部テスト環境で実行されてクレジット課金が実際されてなかったとか

 

これ発見に3日かかったら?

 

考えただけで汗ダラダラでますよ

 

環境変数になるべく設定は書いておく!!

 

プログラムでは環境変数を読み込めばいい

 

プログラム内に大事な設定を書かない!!

 

ここ宿題に出ますよ

コメント