为什么 Flask 开发服务器在开发过程中运行两次
运行 Flask 开发服务器时,用户可能会注意到起始打印行显示两次。此行为源于 Werkzeug 的重新加载器的使用,它会创建一个子进程以便在代码更改时促进更新。
重新加载器的启动
Flask 应用程序运行app.run() 方法,它在内部利用 Werkzeug 的开发服务器。 restart_with_reloader() 函数启动子进程,导致脚本使用 subprocess.call() 重新运行。
禁用自动重新加载
抑制双重打印,在 app.run() 中将 use_reloader 设置为 False。或者,使用带有 --no-reload 标志的 Flask run 命令:
FLASK_DEBUG=1 flask run --no-reload
检测重新加载
确定应用程序是否正在重新加载中运行子进程,使用 werkzeug.serving.is_running_from_reloader function.
模块全局变量的替代方法
如果需要设置模块全局变量,请使用 @app.before_first_request 装饰器创建一个仅执行一次的函数每次重新加载后,根据第一个请求。但是,请注意,这种方法可能会导致使用多个进程的 WSGI 服务器中的多次调用。
以上是为什么我的 Flask 开发服务器似乎启动了两次?的详细内容。更多信息请关注PHP中文网其他相关文章!