官方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