gpt4 book ai didi

python - 如何让 "python -m flask run"运行main函数?

转载 作者:太空宇宙 更新时间:2023-11-03 10:56:00 27 4
gpt4 key购买 nike

我正在使用当前启动如下的 flask 应用程序:

启动命令是python -m flask run,其中FLASK_APP指向__init.py__

__init.py__ 只是将变量 app 设置为 Flask 的实例:

from .app import get_app

app = get_app()

if __name__ == "__main__":
# do nothing
pass

在我看来,flask 检测到此模块中设置的 Flask 的全局实例并运行它们,即使我找不到任何关于此的文档。

现在我想集成 Flask-SocketIO,这需要包装 flask 应用程序并运行 socket 实例。从文档看来,我应该能够从 main 运行它:

from .app import get_app

app, sio = get_app() # returns a Flask and a SocketIO instance now

if __name__ == "__main__":
sio.run(app)
print("Flask-SocketIO server launched")

但是我从来没有看到预期的输出,套接字服务器似乎没有运行。对我来说,这听起来像是 flask 忽略了 main 函数,仍然只是启动它找到的任何 Flask 实例。

为什么会发生这种情况,即是否有任何相关文档?或者,我做错了 Flask-SocketIO 集成吗?

最佳答案

如果您使用的是 Flask 0.11 和新的 cli,那么运行您的应用程序所需要做的就是flask run。 Flask-SocketIO 覆盖了这个命令的实现,并添加了必要的魔法来使一切正常工作。

并且您可以删除 if __name__ == '__main__' block ,除非您还希望能够使用旧的 pre-Flask 0.11 方式启动服务器。

关于python - 如何让 "python -m flask run"运行main函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40718138/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com