请问在flask后台使用多线程或用gevent时有关db和app未注册的错误


#1

在flask后台使用多线程或用gevent向数据库批量添加数据时,出现以下错误:
“RuntimeError: application not registered on db instance and no applicationbound
to current context”
请问是什么原因造成的,如何解决呢?


#2

缺少 flask app context

“向数据库批量添加数据”,确保 db 在flask应用上下文中。

或者你的 flask_sqlalchemy 没有进行 db.init_app(app) 什么的。


#3

db.init_app(app)是有的,我是在shell中操作的,在shell中进行了app与db的注册:
ctx = {“db”: db}
ctx.update(current_app.make_shell_context())
如果不使用多线程是不出现上述错误的,但一使用多线程就出错了,请问是什么原因,flask是不是不允许多线程操作app?