2016-08-22 143 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命令外,它还提供了添加其他有用的命令的功能,这些命令可以在应用程序上下文中运行,代替单独的扩展名或脚本。

一如既往,同样的警告仍然适用:不要在生产环境中运行开发服务器。

相关问题