我的目标是在Flask应用程序启动后运行任意代码.这是我得到的:
def run():
from webapp import app
app.run(debug=True, use_reloader=False)
Run Code Online (Sandbox Code Playgroud)
理想情况下,我可以这样做:
def run():
from webapp import app
app.run(debug=True, use_reloader=False)
some_code()
Run Code Online (Sandbox Code Playgroud)
但代码不会继续app.run(),所以some_code()永远不会运行.
我目前正在处理的解决方案是在app.run()的一个单独的线程中运行some_code(),创建一个先设置它的第一个请求函数:
app.is_running = True
Run Code Online (Sandbox Code Playgroud)
然后获取some_code()以向app发送基本请求,以便"在第一次请求之前"代码运行.这相当复杂,难以记录.我宁愿使用已经在Flask中提供的app.is_running参数,或者使用@app.after_server_start装饰器,但据我所知,这些都不存在.
帮我改进这段代码?
遗腹:每当我想到这个问题,它都会让我希望@app.after_server_start装饰品存在.