【flask】环境配置-python-dotenv的使用
【自動發現程序實例】
一般來說,在執行flask run命令運行程序前,我們需要提供程序實例所在模塊的位置 。
Flask會自動探測程序實例,自動探測存在下面這些規則:
從當前目錄尋找app.py和wsgi.py模塊,并從中尋找名為app或application的程序實例
從環境變量FLASK_APP對應的值尋找名為app或application的程序實例
如果你程序主模塊命名為app.py,flask run命令會自動在其中尋找程序實例。如果你的程序主模塊名是其他名稱,
比如hello.py,那么需要設置環境變量FLASK_APP,將包含程序實例的模塊名賦值給這個變量。
在linux 或 macOS系統使用export命令:
export FLASK_APP=hello
【管理環境變量】
Flask的自動發現程序實例機制還有第三條規則:如果安裝了python-dotenv,那么在使用flask run或其它命令時
會使用它自動從.flaskenv文件和.env文件中加載環境變量。
當安裝了python-dotenv時,Flask在加載環境變量的優先級是:手動設置的環境變量>.env中設置的環境變>.flaskenv設置的環境變量。
除了FLASK_APP,我們還需要使用到其他環境變量。環境變量在新創建命令行窗口或重啟電腦后就清除了,每次都要重設
變量有些麻煩。而且如果你同時開發多個Flask程序,這個FLASK_APP就需要在不同的值之間切換。為了避免頻繁設置環境變量,
我們可以使用python-dotenv管理項目的環境變量,首先使用pipenv將它安裝到虛擬環境:
pipenv install python-dotenv
我們在項目根目錄下分別創建兩個文件:.env和.flaskenv。.flaskenv用來存儲和Flask相關的公開環境變量,比如FLASK_APP;
而.env用來存儲包含敏感信息的環境變量,比如配置Email服務器的賬戶名與密碼。
在.env和.flaskenv文件中,環境變量使用鍵值對的形式定義,每行一個,以#開頭的為注釋,如下所示:
SOME_VAR=1 #這是注釋 FOO="BAR"
【注意!】一定是要在運行flask項目的情況下.env 和.flaskenv中的環境變量才會被Flask加載
【代碼示例】
.flaskenv中的配置如下:
TEST_ENV=test python-dotenv
app.py
from flask import Flask
app =Flask(__name__)
import os
a=os.getenv('TEST_ENV')
print(a)
app.run()
從下面的結果可以看出:
如果不在.flaskenv中配置有關flask的環境變量,運行flask后,
即使.flaskenv中有其它變量如,TEST_ENV,也不能獲取到它的值
.flaskenv文件中增加環境變量FLASK_ENV='development'再次運行app.py
這次.flaskenv中的環境變量都被Flask加載到了,與Flask環境無關的變量TEST_ENV的值也能被獲取取了
TEST_ENV=test python-dotenv FLASK_ENV='development'
另:如果不使用python-dotenv來管理配置變量,其實也可以使用.ini這樣的配置文件來存儲配置信息。
用法:【python3】configparser讀取ini配置文件
總結
以上是生活随笔為你收集整理的【flask】环境配置-python-dotenv的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Please ensure that a
- 下一篇: C#中DataTable中的Comput