官方Flask documentation使用flask run
或python -m flask run
,兩者均需要設置FLASK_APP
。然而,我見過的大多數其他教程只是使用python app.py
,這不需要額外的步驟,而且迄今爲止對我來說運行良好。本地運行Flask應用程序的典型方法
flask run
的優點是什麼?我想確保替代方案不會導致我以後無法弄清楚的錯誤。
官方Flask documentation使用flask run
或python -m flask run
,兩者均需要設置FLASK_APP
。然而,我見過的大多數其他教程只是使用python app.py
,這不需要額外的步驟,而且迄今爲止對我來說運行良好。本地運行Flask應用程序的典型方法
flask run
的優點是什麼?我想確保替代方案不會導致我以後無法弄清楚的錯誤。
除非您有一個不要(並且您可能不需要)的理由,否則請使用flask run
來運行開發服務器。這是今後的支持。從docs轉述:
來自Flask 0.11之後,建議使用
flask
命令。原因是由於dev服務器的重載機制是如何工作的,在使用app.run
時(如執行某些代碼兩次,有時會在沒有消息的情況下崩潰或者在語法或導入錯誤發生時死機),會產生一些奇怪的副作用。
要解決這些問題,flask
命令會將應用程序與導入應用程序並運行服務器的代碼分開。 flask.run
方法仍然存在,因爲這些問題都不重要,只是混淆。它可能在未來完全被棄用。
除了run
命令外,它還提供了添加其他有用的命令的功能,這些命令可以在應用程序上下文中運行,代替單獨的擴展名或腳本。
一如既往,同樣的警告仍然適用:不要在生產環境中運行開發服務器。
大部分教程都是在添加'flask'入口點之前編寫的。使用它可以避免在代碼中添加'app.run'調用。 – dirn
如果您使用的是最新版本的Flask,請使用瓶頸入口點。 –
@dirn好的,但是如果我將[app as a package](http://flask.pocoo.org/docs/0.11/patterns/packages/)組織起來呢?根據文檔,我是否仍然需要運行腳本中的'app.run()'?這就是我所擁有的,我一直在用'python run.py'調用腳本。 – bongbang