我的目标是在我的 Flask 应用程序启动后让任意代码运行。这是我所拥有的:
def run():
from webapp import app
app.run(debug=True, use_reloader=False)
理想情况下,我将能够做到这一点:
def run():
from webapp import app
app.run(debug=True, use_reloader=False)
some_code()
但是代码不会继续过去app.run()
,所以 some_code() 永远不会运行。
我目前正在研究的解决方案是在 app.run() 的单独线程中运行 some_code(),创建一个before first request函数来设置它:
app.is_running = True
然后让 some_code() 向应用程序发出基本请求,以便“在第一次请求之前”代码运行。这是相当复杂的,并且很难记录。我宁愿使用 Flask 中已经提供的 app.is_running 参数,或者使用@app.after_server_start
装饰器,但据我所知,这些都不存在。
帮我把这段代码做得更好?
死后:每次想到这个问题,我都希望有一个@app.after_server_start
装饰器存在。