一、什麼是python-dotenv?
Python-dotenv是一個Python庫,它可以從.env文件中讀取環境變量,將它們存儲在操作系統的環境變量中,使Python應用程序可以輕鬆地訪問這些變量。.env文件是一個純文本文件,其中包含key=value對,每個key=value對佔據一行。將敏感信息存儲在環境變量中而不是硬編碼在代碼中是一個好的安全實踐,因為這些值不會存儲在代碼庫中,也不會在部署時暴露出來。
from dotenv import load_dotenv
import os
# 將.env文件中的環境變量加載到系統中
load_dotenv()
# 訪問環境變量
SECRET_KEY = os.getenv("SECRET_KEY")
DATABASE_PASSWORD = os.getenv("DATABASE_PASSWORD")
二、為什麼使用Python-dotenv?
1、保護敏感信息
使用Python-dotenv將敏感信息存儲在環境變量中,而不是硬編碼在代碼中,可以更加安全地保護這些信息。在Git等版本控制系統中,.gitignore文件可以忽略.env文件,以避免將敏感信息推送到倉庫中。這樣可以保證代碼的安全,並減少泄露的風險。
2、方便易用
Python-dotenv提供了一種簡單的方式來管理環境變量,並且可以在不同的部署階段中使用不同的變量,而無需修改代碼本身。此外,Python-dotenv還可以與其他工具集成使用,比如docker-compose,這樣可以輕鬆實現本地開發和生產環境之間的切換。
3、支持多種變量格式
Python-dotenv支持多種變量格式,這些格式包括:key=value,key=”value”,key=’value’以及key=value # comment。這些靈活的格式使得Python-dotenv非常容易集成到不同的項目中。
三、如何使用Python-dotenv?
1、安裝Python-dotenv
你可以使用pip來安裝Python-dotenv,如下所示:
pip install python-dotenv
2、創建.env文件
創建一個.env文件,並將環境變量寫入該文件中,每個key=value對應一行:
# MySQL數據庫
DATABASE_HOST=localhost
DATABASE_NAME=mydatabase
DATABASE_USER=myuser
DATABASE_PASSWORD=mypassword
# 私有key
SECRET_KEY=mysecretkey
3、將.env文件中的變量加載到系統環境變量中
通過使用load_dotenv函數,將.env文件中的所有變量讀取到系統環境變量中,可以在程序中方便地使用這些變量。
from dotenv import load_dotenv
import os
# 將.env文件中的環境變量加載到系統中
load_dotenv()
# 訪問環境變量
SECRET_KEY = os.getenv("SECRET_KEY")
DATABASE_PASSWORD = os.getenv("DATABASE_PASSWORD")
4、使用Python-dotenv進行配置
除了使用環境變量,Python-dotenv還可以與其他庫集成使用,比如Flask。在Flask應用程序中,使用Python-dotenv來管理應用程序配置非常簡單,可以在應用程序根目錄中創建一個.env文件,然後在應用程序初始化時使用load_dotenv函數將變量加載到系統中。
from flask import Flask
from dotenv import load_dotenv
# 創建應用程序
app = Flask(__name__)
# 將.env文件中的環境變量加載到系統中
load_dotenv()
# 設置秘密密鑰
app.config["SECRET_KEY"] = os.getenv("SECRET_KEY")
# 設置數據庫鏈接配置
app.config["SQLALCHEMY_DATABASE_URI"] = (
f"mysql+pymysql://{os.getenv('DATABASE_USER')}:{os.getenv('DATABASE_PASSWORD')}@{os.getenv('DATABASE_HOST')}/{os.getenv('DATABASE_NAME')}"
)
# 創建數據庫實例
db = SQLAlchemy(app)
# 啟動應用程序
if __name__ == '__main__':
app.run()
四、總結
Python-dotenv提供了一種簡單的方式來管理環境變量,使得Python應用程序可以輕鬆地訪問這些變量。通過使用Python-dotenv,可以更加安全地保護敏感信息,並且方便易用,支持多種變量格式。在不同的部署階段中使用不同的變量,而無需修改代碼本身,是一個很好的實踐。總體來說,Python-dotenv是一個非常有用的工具,可以使得Python項目變得更加安全和方便。
原創文章,作者:MWSWZ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/349290.html