Python中的dotenv的詳細用法


最簡單和最常見的用法是在應用程序啟動時調用load_dotenv,從當前目錄或其父目錄中的.env文件或指定的路徑加載環境變量,然后你可以調用os.getenv提供的與環境相關的方法。

.env 文件內容寫法

# a comment that will be ignored.
REDIS_ADDRESS=localhost:6379
MEANING_OF_LIFE=42
MULTILINE_VAR="hello\nworld"

你可以使用單詞export作為每行的前綴,這將會使python-dotenv 忽略該變量,但是你可以使用 source 命令運行該文件。

python-dotenv 可以用來修改 POSIX系統的環境變量。

變量的值是下面列表中定義的第一個值:

系統環境變量
.env 文件中定義的值
默認值,如果有的話
空字符串
確保引用其他變量時用大括號{}包圍,就像${HOME},因為像$HOME這樣的字符串不會被認為是變量的引用。

CONFIG_PATH=${HOME}/.config/foo
DOMAIN=example.org
EMAIL=admin@${DOMAIN}
DEBUG=${DEBUG:-false}  

項目中使用
安裝

pip install -U python-dotenv

基本用法
確保你的項目目錄下 有 .env 文件

.
├── .env
└── settings.py

然后你可以在settings.py中添加以下代碼:

# settings.py
from dotenv import load_dotenv, find_dotenv
from pathlib import Path  # Python 3.6+ only

# 一、自動搜索 .env 文件

load_dotenv(verbose=True)


# 二、與上面方式等價

load_dotenv(find_dotenv(), verbose=True)

# 三、與上面方式等價 
指定 .env 文件位置

env_path = Path('.') / '.env'
load_dotenv(dotenv_path=env_path, verbose=True)

通過load_dotenv ,你就可以訪問像訪問系統環境變量一樣使用.env文件中的變量了,比如通過

```

os.genenv(key, default=None)

# settings.py

import os
SECRET_KEY = os.getenv("EMAIL")
DATABASE_PASSWORD = os.getenv("DATABASE_PASSWORD")

參數
dotenv_path: 指定.env文件路徑,當然如果不傳該參數的話(默認為None)也會自定調用dotenv.find_dotenv()去查找文件位置的,但是你的文件名如果不是.env那就必須傳遞該參數了

override: 當.env 文件中有變量與系統中原來的環境變量有沖突時,按照上面的取值順序,默認使用系統變量,如果要用.env中的變量覆蓋系統變量,可以給load_dotenv() 傳遞參數override=True。此時只是臨時使用了.env 中的變量值

encoding: load_dotenv() 也可以傳遞encoding 參數指定文件的編碼方式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM