gpt4 book ai didi

python - 带有请求的 flask 损坏的管道

转载 作者:IT老高 更新时间:2023-10-28 20:31:17 27 4
gpt4 key购买 nike

我想在 flask 应用中发送本地 REST 请求,如下所示:

from flask import Flask, url_for, request
import requests

app = Flask(__name__)

@app.route("/<name>/hi", methods=["POST"])
def hi_person(name):
form = {"name": name}
return requests.post(url_for("hi", _external=True), data=form)

@app.route("/hi", methods=["POST"])
def hi():
return 'Hi, %s!' % request.form["name"]

发送 curl -X POST http://localhost:5000/john/hi 会导致整个 flask 应用程序卡住。当我发送终止信号时,我收到了一个损坏的管道错误。有没有办法防止 flask 在这里结冰?

最佳答案

在能够处理并发请求(可能是 gunicornuWSGI)的适当 WSGI 服务器下运行您的 flask 应用程序,它会工作。开发时,在 Flask 提供的服务器中启用线程:

app.run(threaded=True)

但请注意,不建议将 Flask 服务器用于生产用途。从 Flask 1.0 开始,默认情况下启用 threaded,并且您确实希望在命令行上使用 flask 命令来运行您的应用程序。

发生的情况是,使用请求您正在向您的 flask 应用发出 第二个 请求,但由于它仍在忙于处理第一个请求,因此在完成之前它不会响应第二个请求第一个请求。

顺便说一下,在 Python 3 下,socketserver 实现更优雅地处理断开连接并继续服务而不是崩溃。

关于python - 带有请求的 flask 损坏的管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12591760/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com