Flask 启动两次
文章目录
本博客将介绍 flask 项目在 debug 模式下启动两次的原因以及对应解决方案
启动flask之后,会自动的重启(请注意第三行的 Restarting with stat
)
Now starting to run....
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
Now starting to run....
* Debugger is active!
* Debugger pin code: 634-150-323
当调用app.run()的时候,用到了Werkzeug库,它会生成一个子进程,当代码有变动的时候它会自动重启
如果在run()里加入参数 use_reloader=False,就会取消这个功能,当然,在以后的代码改动后也不会自动更新了。
可以查看WERKZEUG_RUN_MAIN环境变量, 默认情况下,调用子程序时,它会被设置为True。初次启动程序时为False。
在 debug 模式下,可以参考以下代码来规避重复执行
if os.environ.get('WERKZEUG_RUN_MAIN') != 'true':
# do something only once, before the reloader
if os.environ.get('WERKZEUG_RUN_MAIN') == 'true':
# do something each reload
更多详情请参见 stackoverflow
文章作者 honour
上次更新 2018-08-25