如何运行烧瓶应用程序?

新手上路,请多包涵

我想知道启动烧瓶应用程序的正确方法。文档显示了两个不同的命令:

 $ flask -a sample run

$ python3.4 sample.py

产生相同的结果并正确运行应用程序。

两者之间有什么区别,应该使用哪个来运行 Flask 应用程序?

原文由 KarateKid 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 307
2 个回答

flask 命令是一个用于与 Flask 应用程序交互的 CLI。 文档 描述了如何使用 CLI 命令和添加自定义命令。 flask run 命令是启动开发服务器的首选方式。

切勿使用此命令公开部署,使用生产 WSGI 服务器,例如 Gunicorn、uWSGI、Waitress 或 mod_wsgi。

从 Flask 2.2 开始,使用 --app 选项将命令指向您的应用程序。它可以指向导入名称或文件名。它会自动检测名为 create_app 的应用程序实例或应用程序工厂。使用 --debug 选项通过调试器和重新加载器在调试模式下运行。

 $ flask --app sample --debug run


在 Flask 2.2 之前,使用了 FLASK_APPFLASK_ENV=development 环境变量。 FLASK_APPFLASK_DEBUG=1 仍然可以用来代替上面的 CLI 选项。

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

在 Windows CMD 上,使用 set 而不是 export

 > set FLASK_APP=sample

对于 PowerShell,使用 $env:

 > $env:FLASK_APP = "sample"


python sample.py 命令运行一个 Python 文件并设置 __name__ == "__main__" 。如果主块调用 app.run() ,它将运行开发服务器。如果您使用应用工厂,此时您还可以实例化一个应用实例。

 if __name__ == "__main__":
    app = create_app()
    app.run(debug=True)


这两个命令最终都会启动 Werkzeug 开发服务器,顾名思义,它会启动一个只应在开发期间使用的简单 HTTP 服务器。您应该更喜欢使用 flask run 命令而不是 app.run() 命令。

原文由 davidism 发布,翻译遵循 CC BY-SA 4.0 许可协议

最新文档 有以下示例,假设您要运行 hello.py (使用 .py 文件扩展名是可选的):

Unix、Linux、macOS 等:

 $ export FLASK_APP=hello
$ flask run

视窗:

 > set FLASK_APP=hello
> flask run

原文由 Caner 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题