首页 >后端开发 >Python教程 >为什么我的 Flask 开发服务器似乎启动了两次?

为什么我的 Flask 开发服务器似乎启动了两次?

Linda Hamilton
Linda Hamilton原创
2024-12-15 15:31:10216浏览

Why Does My Flask Dev Server Appear to Start Twice?

为什么 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn