python - 如何在 Flask `app.run()` 语句后执行代码(并行运行 Flask 应用和函数,在 Flask 服务器运行时执行代码)

标签 python flask

最近将 Flask 添加到一个随机打印单词的示例无限循环中。但是,当添加 app.run(host='0.0.0.0') 时,该行之后的代码在我停止 Flask 运行后将不会执行。

if __name__ == '__main__':
    app.run(host='0.0.0.0')

    while True:  # won't run until I press stop once (stop Flask) when running directly from IDE
        ...

我想要的是能够在 Flask 应用程序运行时运行 while 循环。

有没有办法解决这个问题?

最佳答案

您可以使用 before_first_request反而。用 @app.before_first_request 修饰的函数将在第一次请求此应用程序实例之前运行一次。

代码如下所示:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    print("index is running!")
    return "Hello world"

@app.before_first_request
def before_first_request_func():
    print("This function will run once")


if __name__ == "__main__":
    app.run(host="0.0.0.0")

before_first_request_func 中的代码将在第一次向服务器请求之前执行一次。因此,在启动 Flask 实例后,可以使用 curl 左右模拟对服务器的第一个请求。

关于python - 如何在 Flask `app.run()` 语句后执行代码(并行运行 Flask 应用和函数,在 Flask 服务器运行时执行代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67774420/

相关文章:

python - 如何在 DataFrame 中创建和使用新函数?

javascript - 即使设置间隔后 Canvas 也不会更新

apache - 书签提交或相关数据库操作上的mod_wsgi意外行为

javascript - 上传到heroku时找不到模块 'promise'

python - 如何在 Python 中从 3 个列表创建 3 维字典

python - 从 shell 脚本获取 pytest 退出代码

python - matplotlib 图形中的视觉缺陷

python - 如何在没有缓存模板的情况下运行 Flask?

jquery - 通过 AJAX 返回 ZIP 文件

python - 图库 slider 图像太大