python-dotenv: 讓你的Python項目變得更加安全和方便

一、什麼是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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MWSWZ的頭像MWSWZ
上一篇 2025-02-14 17:47
下一篇 2025-02-15 17:09

相關推薦

  • Python官網中文版:解決你的編程問題

    Python是一種高級編程語言,它可以用於Web開發、科學計算、人工智能等領域。Python官網中文版提供了全面的資源和教程,可以幫助你入門學習和進一步提高編程技能。 一、Pyth…

    編程 2025-04-29
  • 掌握magic-api item.import,為你的項目注入靈魂

    你是否曾經想要導入一個模塊,但卻不知道如何實現?又或者,你是否在使用magic-api時遇到了無法導入的問題?那麼,你來到了正確的地方。在本文中,我們將詳細闡述magic-api的…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 如何將Java項目分成Modules並使用Git進行版本控制

    本文將向您展示如何將Java項目分成模塊,並使用Git對它們進行版本控制。分割Java項目可以使其更容易維護和拓展。Git版本控制還可以讓您跟蹤項目的發展並協作開發。 一、為什麼要…

    編程 2025-04-28
  • GitHub好玩的開源項目

    本文旨在介紹GitHub上一些好玩的開源項目,並提供代碼示例供讀者參考和學習。 一、Emoji列表 GitHub上有一份完整的Emoji列表,它支持各種平台和設備,方便用戶在Git…

    編程 2025-04-28
  • Codemaid插件——讓你的代碼優美整潔

    你是否曾為了混雜在代碼里的冗餘空格、重複代碼而感到煩惱?你是否曾因為代碼缺少注釋而陷入困境?為了解決這些問題,今天我要為大家推薦一款Visual Studio擴展插件——Codem…

    編程 2025-04-28
  • Django框架:從簡介到項目實戰

    本文將從Django的介紹,以及如何搭建Django環境開始,逐步深入到Django模型、視圖、模板、表單,最後通過一個小型項目實戰,進行綜合性的應用,讓讀者獲得更深入的學習。 一…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智能,Python都扮演着重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • IIS部署Python項目

    本文將從多個方面詳細闡述在IIS上如何部署Python項目。包括安裝IIS、安裝Python、配置IIS、編寫和部署Python代碼等內容。 一、安裝IIS和Python 在開始進…

    編程 2025-04-28
  • 如何使用TKE來開發Java項目

    本文將從多個方面詳細闡述如何使用TKE(Theia IDE)來進行Java項目的開發。TKE是一個功能強大的在線集成開發環境,提供了大量的工具和插件,讓開發者可以高效地進行Java…

    編程 2025-04-28

發表回復

登錄後才能評論