最近将 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/