主要解决异步状态在访问数据库出现的Working outside of application context问题
在异步状态下,子进程等于脱离了flask主进程,导致无法从上下文处理器中获取数据库连接配置而导致此错误,在网上查阅后可知解决方法为使用with语句,但问题是在蓝图中并没有办法调用app_context。
在进入线程前,获取flask进程中的app对象并将其作为参数传递给子进程
app = current_app._get_current_object() #传递flask参数
backThreader = threading.Thread(target=NerSelect,args=(processid,app))
#参数为进程名,参数列表
backThreader.daemon=True #开启守护进程
backThreader.start() #开启进程
随后在子进程中使用with语句即可
with app.app_context():
#数据库操作