Flask Debug模式下总是初始化两遍

这个如果是在debug模式下出现一般是跟reloader特性有关系,WERKZEUG提供的这个特性主要是方便实时监测到开发中修改的文件,比重启app要快很多。但是有的时候我们希望app或者部分代码指启动一遍,可以用下面的环境变量来监测是否是第二次reload中的初始化。

if not app.debug or os.environ.get(“WERKZEUG_RUN_MAIN”) == “true”

组件初始化我们也希望初始化一遍,flask对此有一个专门的事件:

@app.before_first_request
def initialize():
print “Called only once, when the first request comes in”