如何将socketio对象从Flask的 app.py 传递到Python中的views模块?



在我的app.py中,我做:

app = Flask(__name__)
app.register_blueprint(views.SOMETHING)
socketio = SocketIO(app, ...)

我需要使用这个socketio对象,或者更具体地说,它的socketio.emit方法来与客户端交谈。

我需要从多个Python模块来完成这项工作,比如我的views模块,以及一些定义后台线程的模块。

当我启动后台线程时,很容易将socketio对象传递给它们,但我不知道如何在定义了所有视图的views模块中访问此对象。

我唯一能想到的就是有一个global_vars模块来存储socketio对象,它可以从多个Python模块导入,但我听说这是一种糟糕的做法。

有没有更好的方法将我的socketio对象传递给我的views模块?

最简单的方法是执行from app import socketio,但请确保在设置了socketio之后,将要导入socketio的文件导入app.py。

最新更新