變量管理 dotenv 的 使用


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])

Github 地址

flask 中的使用

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. 以  #  開頭的為注釋

Github 地址


免責聲明!

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



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