如何阻止Flask在调试模式下初始化两次?[副本]

这个问题在这里已经有答案了
为什么运行Flask dev服务器会自动运行两次?

(7个答案)

两年前关闭的

在Python中构建Flask服务并启用调试模式时,Flask服务将初始化两次。当初始化加载缓存等时,这可能需要一段时间。在开发(调试)模式下,必须这样做两次是很烦人的。当调试关闭时,Flask服务只初始化一次

如何阻止Flask在调试模式下初始化两次

这里最简单的方法是将use\u reloader=False添加到调用app.run——也就是说:app.run(debug=True,use\u reloader=False)

或者,您可以在以下环境中检查WERKZEUG\u RUN\u MAIN的值:

如果os.environ.get(“WERKZEUG\u RUN\u MAIN”)=“true”:
#重新加载程序已运行-执行您在此处要执行的操作

但是,如果您希望在加载过程中除之外的任何时间都发生行为,则条件会更加复杂:

如果不是app.debug或os.environ.get(“WERKZEUG_RUN_MAIN”)=“true”:
#应用程序未处于调试模式,或者我们正在重新加载过程中

发表评论