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#

接著創建 .env 文件來覆蓋 Settings.py 類裡面的屬性值:

DB_HOST=dev://

python-dotenv 庫默認查找的環境變量文件是 .env,當然也可以在調用 load_dotenv() 時手動指定文件路徑

使用#

使用方法如下:

from .settings import settings

# 方法一:通過 Settings 類的實例來訪問配置
settings.DB_HOST

# 方法二:直接讀取環境變量
os.getenv('DB_HOST', 'localhost')

參考#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。