(一)Flask啓動開發服務器

關聯文章:項目進度記錄

Flask通過依賴包 Click 內置了一個CLI(命令行交互界面)系統,當安裝flask後, 會自動添加一個flask命令腳本。 我們可以通過flask命令執行內置命令、擴展提供的命令和自定義的命令。

flask run 命令是內置命令,用來啓動內置的開發服務器,開發服務器默認會監聽http://127.0.0.1:5000/地址,並開啓多線程支持。 舊的啓動開發服務器的方式是使用app.run()方法,目前已不推薦使用。若要配置外網訪問,可以在run命令後添加--host 選項,如: flask run --host=0.0.0.0.
目前我的項目開發還處於初級階段,只運行在本地虛擬環境,所以運行項目使用以下命令: pipenv run flask run

一般來說,在執行flask run命令運行程序前,需要提供程序實例所在模塊的位置。在上面可以直接運行程序,是因爲Flask會自動探測程序實例,目前自動探測存在下面這些規則:

  1. 從當前目錄尋找app.pywsgi.py模塊,並從中尋找名爲appapplication的程序實例;
  2. 從環境變量FLASK_APP對應的值尋找名爲appapplication的程序實例;除此之外,也會尋找名爲create_app()make_app()的工廠函數,自動調用工廠函數創建程序實例並運行;
  3. 如果安裝了python-dotenv,那麼使用flask run命令或其他命令時,會自動從.flaskenv.env文件中加載環境變量;

在我的項目中安裝了python-dotenv,此時Flask在加載環境變量的優先級是:手動設置的環境變量>.env中設置的環境變量>.flaskenv設置的環境變量

爲了區分程序運行環境,Flask提供了一個FLASK_ENV環境變量用來設置環境,默認爲production。在項目裏,通過在.flaskenv中設置FLASK_CONFIG,來將代碼的運行環境修改爲開發環境:

FLASK_APP=autoline
FLASK_CONFIG=development
FLASK_RUN_HOST=127.0.0.1
FLASK_RUN_PORT=5001
FLASK_ENV=development

另外,在開發環境下,調試模式將會自動開啓,這時執行flask run啓動程序會激活Werkzeug內置的調試器(debugger)和重載器(reloader)。Werkzeug提供的調試器非常強大,當程序出錯時,接口會返回詳細的錯誤堆棧,如果想單獨控制調試模式的開關,可以通過FLASK_DEBUG環境變量設置,設爲1則開啓,設爲0則關閉。
當對代碼做了修改後,期望的行爲是這些改動立刻作用到程序上。重載器的作用就是監測文件變動,然後重新啓動開發服務器。 默認會使用Werkzeug內置的stat重載器,它的缺點是準確性一般。爲了獲得更好的體驗,在項目中安裝另一個用於監測文件變動的Python庫Watchdog,安裝後Werkzeug會自動使用它來監測文件變動.

【To Be Continued...】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章