gpt4 book ai didi

python - Flask 甚至不检查文件就返回响应

转载 作者:太空宇宙 更新时间:2023-11-03 21:16:54 27 4
gpt4 key购买 nike

我试图更准确地了解 Http 连接如何与 Flask 配合使用,因此我尝试编写一个非常简单的应用程序和另一个带有请求的简单连接:

app = Flask('file-streamer')

@app.route("/uploadDumb", methods=["POST"])
def upload_dumb():
print("Hello")
return Response(status=200)

然后我将一个大文件 (1.5 GB) 发送到带有请求的端点:

url = "http://localhost:5000/uploadDumb"
values = {"file": open(file, "rb")}
r = requests.post(url=url, data={}, files=values)

我希望 Flask 等待整个文件被发送,即使该文件没有用。然而,事实并非如此,Flask 很快返回 200 响应,这导致我的第二个脚本出现 BrokenPipeError。

有人可以向我解释一下这里发生了什么吗?

最佳答案

我认为发生这种情况是因为 Flask 主体解析很懒(实际上这是一件好事)。因此,当请求到来时,Flask 仅读取 header ,直到以某种方式访问​​正文(通过 request.data、request.files、request.json() 等)。因此,要触发完整的正文(和文件)上传,请尝试访问请求正文以使 Flask 解析文件,例如:

_ = request.data

关于python - Flask 甚至不检查文件就返回响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54628050/

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