myesn

myEsn2E9

hi
github

Python: .env ファイルを通じて異なる環境での環境変数を設定する

説明#

以前書いた Flask: 現在の環境に基づいて異なる設定ファイルを読み込む は少し重かったので、次に設定ファイル(.env)を環境変数に読み込み、環境変数から設定を読み取る方法を紹介します。この方法はより柔軟です:

依存関係のインストール#

まず、python-dotenv ライブラリをインストールする必要があります:

pip install python-dotenv

このライブラリの役割は、.env ファイルからキーと値のペアを読み取り、それを環境変数として設定することです。

settings.py の作成#

# settings.py

import os
from dotenv import load_dotenv

# .env ファイルからキーと値のペアを読み取り、その後環境変数として設定
# デフォルトでは .env ファイルを読み取りますが、もちろんファイルパスを指定することもできます。参考:https://stackoverflow.com/a/41547163/7712266
load_dotenv()

class Settings:
    SERVICE_NAME: str = os.getenv('SERVICE_NAME', 'service a')
    DB_HOST:str = os.getenv('DB_HOST', 'localhost')

# シングルトンをインスタンス化し、他の場所から呼び出しやすくします
settings = Settings()

.env の作成#

次に、Settings.py クラス内の属性値を上書きするために .env ファイルを作成します:

DB_HOST=dev://

python-dotenv ライブラリがデフォルトで探す環境変数ファイルは .env ですが、load_dotenv() を呼び出すときに手動でファイルパスを指定することもできます。

使用方法#

使用方法は以下の通りです:

from .settings import settings

# 方法1:Settings クラスのインスタンスを通じて設定にアクセス
settings.DB_HOST

# 方法2:環境変数を直接読み取る
os.getenv('DB_HOST', 'localhost')

参考#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。