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日かかったら?
考えただけで汗ダラダラでますよ
環境変数になるべく設定は書いておく!!
プログラムでは環境変数を読み込めばいい
プログラム内に大事な設定を書かない!!
ここ宿題に出ますよ

コメント