Flask中使用flask_socketio不能使用sqlalchemy
来源:1-1 导学
wliupz
2019-04-11
如题 我要在socketio的后台线程start_background_task中使用数据库 为什么db为空呢
写回答
2回答
-
wliupz
提问者
2019-04-12
谢谢老师抽空看我的问题 这2天被这个问题 弄的头大 ...
下面是我简化的代码 我是做java的 现在在学python 学了老师的课程后 在做一个其他demo
问题: 在方法task中不能使用sqlAlthemy的db 提示错误:
get_app
'No application found. Either work inside a view function or push'
RuntimeError: No application found. Either work inside a view function or push an application context. See http://flask-sqlalchemy.pocoo.org/contexts/.
以下是我简化后的代码
from flask import Flask, Response from flask_sqlalchemy import SQLAlchemy from flask_socketio import SocketIO from threading import Lock app = Flask(__name__) db_str = "{}+{}://{}:{}@{}:{}/{}?charset=utf8" app.config['SQLALCHEMY_DATABASE_URI'] = db_str.format('') db = SQLAlchemy() socketio = SocketIO() db.init_app(app) socketio.init_app(app) lockObj = None thread_lock = Lock() thread_flag = None @app.route('/') def run(): global thread_flag with thread_lock: if thread_flag is None: thread_flag = socketio.start_background_task(task) return Response(response='success') def task(): print(' enter ... ', str(db.engine)) if __name__ == '__main__': app.config['JSON_AS_ASCII'] = False socketio.run(app)
012019-04-12 -
7七月
2019-04-11
抱歉,我对socketio没有了解。但这个理论上是不冲突的。
022019-04-11
相似问题