1. 程式人生 > >Flask1.0.2系列(十八) 開發伺服器

Flask1.0.2系列(十八) 開發伺服器

英文原文地址:http://flask.pocoo.org/docs/1.0/server/

若有翻譯錯誤或者不盡人意之處,請指出,謝謝~


        從Flask0.11版本開始,這裡有多種內建方法來執行一個開發伺服器。最好的方法是使用flask命令列工具,但是你也可以繼續使用Flask.run()函式。


1. 命令列

        在開發時,強烈推薦使用flask命令列指令碼(上一章內容)。因為它提供了一個出眾的過載體驗。基本用法如下:

$ export FLASK_APP=my_application
$ export FLASK_ENV=development
$ flask run

        這裡啟用了開發環境,也包含了互動式偵錯程式和重新載入器,並且隨後在http://localhost:5000/上啟動服務。

        服務單獨的特定也能通過傳遞引數給run選項來控制。舉個栗子,重新載入器被禁用:

$ flask run --no-reload

        注意:

        在Flask1.0之前,FLASK_ENV環境變數是不被支援的,並且你需要使用匯出FLASK_DEBUG=1來啟用除錯模式。這種方式依然可以控制除錯模式,但是你應該傾向於上面的方式來設定開發環境。


2. 在程式碼中

        另一種啟動應用程式的方法,是使用Flask.run()函式。這種立即啟動一個本地服務的方式,與flask指令碼所做的完全一樣。

        舉個栗子:

if __name__ == '__main__':
    app.run()

        這對於一般情況來說很有效,但對於開發來說卻不是很友好,這就是為什麼從Flask0.11開始,推薦使用flask命令的方法。這樣做的原因是,由於過載機制是何如工作的,有一些奇怪的副作用(比如執行某些程式碼兩次,有時在沒有訊息的情況下崩潰,或者在出現語法或匯入錯誤時掛掉了)。

        然而,它仍然是一種呼叫非自動過載應用程式的非常有效的方法。