2016-08-22 145 views
0

官方Flask documentation使用flask runpython -m flask run,兩者均需要設置FLASK_APP。然而,我見過的大多數其他教程只是使用python app.py,這不需要額外的步驟,而且迄今爲止對我來說運行良好。本地運行Flask應用程序的典型方法

flask run的優點是什麼?我想確保替代方案不會導致我以後無法弄清楚的錯誤。

+3

大部分教程都是在添加'flask'入口點之前編寫的。使用它可以避免在代碼中添加'app.run'調用。 – dirn

+0

如果您使用的是最新版本的Flask,請使用瓶頸入口點。 –

+0

@dirn好的,但是如果我將[app as a package](http://flask.pocoo.org/docs/0.11/patterns/packages/)組織起來呢?根據文檔,我是否仍然需要運行腳本中的'app.run()'?這就是我所擁有的,我一直在用'python run.py'調用腳本。 – bongbang

回答

3

除非您有一個不要(並且您可能不需要)的理由,否則請使用flask run來運行開發服務器。這是今後的支持。從docs轉述:

來自Flask 0.11之後,建議使用flask命令。原因是由於dev服務器的重載機制是如何工作的,在使用app.run時(如執行某些代碼兩次,有時會在沒有消息的情況下崩潰或者在語法或導入錯誤發生時死機),會產生一些奇怪的副作用。

要解決這些問題,flask命令會將應用程序與導入應用程序並運行服務器的代碼分開。 flask.run方法仍然存在,因爲這些問題都不重要,只是混淆。它可能在未來完全被棄用。

除了run命令外,它還提供了添加其他有用的命令的功能,這些命令可以在應用程序上下文中運行,代替單獨的擴展名或腳本。

一如既往,同樣的警告仍然適用:不要在生產環境中運行開發服務器。

相關問題