Ced*_*ach 5 python flask flask-socketio
我正在使用当前启动的烧瓶应用程序,如下所示:
起始命令是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
Run Code Online (Sandbox Code Playgroud)
在我看来,flask 检测Flask
到此模块中set 的全局实例并运行它们,即使我找不到任何关于此的文档。
现在我想集成 Flask-SocketIO,这需要包装烧瓶应用程序并运行套接字实例。从文档来看,我似乎应该能够从 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")
Run Code Online (Sandbox Code Playgroud)
但是我从来没有看到预期的输出,而且套接字服务器似乎没有运行。对我来说,这听起来像是 flask 忽略了 main 函数,仍然只是启动Flask
它找到的任何实例。
为什么会发生这种情况,即是否有关于此的任何文档?或者,我是否在做 Flask-SocketIO 集成错误?
如果您使用 Flask 0.11 和新的 cli,那么运行应用程序所需要做的就是flask run
. Flask-SocketIO 会覆盖此命令的实现,并添加必要的魔法以使一切正常工作。
并且您可以删除您的if __name__ == '__main__'
块,除非您还希望能够使用旧的 Flask 0.11 之前的方式启动服务器。
归档时间: |
|
查看次数: |
6611 次 |
最近记录: |