python-dotenv
安裝
pip install python-dotenv 或 pipenv install python-dotenv --skip-lock
創建目標文件
在項目根目錄下創建, (可靈活選擇)
touch .env
使用
import os
from dotenv import load_dotenv // 1. 導包
from pathlib import Path
if __name__ == '__main__':
load_dotenv() //2. 加載 .env 文件, 默認 這個文件名,默認自動 在當前工作目錄下 查找
"""
文件可以是任意一個文件,則在加載時 需 顯式 添加 參數 dotenv_path 來指定 此文件的位置,
例如:
env_path = Path("./modelForm_Demo01/.env")
load_dotenv(dotenv_path= env_path)
"""
courseList = eval(os.getenv("courseList")) // 3. 通過 os.genenv(key) 來獲取, 類型都為字符串
// 獲取到的字符串值, 可通過 eval() 內建函數 來轉換為 對應 的 類型
print(type(courseList))
print(courseList[0])
Django-dotenv
安裝
pip install django-dotenv 或 pipenv install django-dotenv --skip-lock
卸載 python-dotenv
pip uninstall python-dotenv
使用
-
修改 manage.py -------, 使用 runserver 啟動 Django 的 情況下
import os import sys import dotenv // 1. 導包 def main(): os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'modelForm_Demo01.settings') try: from django.core.management import execute_from_command_line except ImportError as exc: pass execute_from_command_line(sys.argv) if __name__ == '__main__': dotenv.read_dotenv() // 2. 加載 .env 文件,默認 項目 根路徑下查找, """ params: dotenv : 文件 地址,例:os.path.abspath(os.path.join(os.path.dirname(__file__), '.env02')) override : 如果.env中的值應該覆蓋系統變量,則為True , 默認 False """ EMAIL_URL = os.getenv("EMAIL_URL") // 3. 獲取 變量 main()
-
修改 wsgi.py 文件, ----- 使用 uwsgi 啟動 Django 的 情況下
# 具體 使用 方法 與 上面講的 一樣 import os from django.core.wsgi import get_wsgi_application import dotenv // 1. 導包 dotenv.read_dotenv(os.path.join(os.path.dirname(__file__), '.env02')) // 2. 加載 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'modelForm_Demo01.settings') EMAIL_URL = os.getenv("EMAIL_URL") // 3. 獲取 變量 application = get_wsgi_application()
.env 文件說明
1. 使用鍵值對的形式定義
2. 以 # 開頭的為注釋