当前位置:首页 > 每日看点

如何使用flask完成数据传输?

卡卷网1年前 (2025-03-29)每日看点206

根本原因

IIS 的 FastCGI 模块默认启用响应缓冲(Response Buffering),会强制等待 Flask 返回完整 HTTP 响应后再发送给客户端,导致以下问题:

  • 流式数据被缓存:Flask 的 text/event-stream 流式响应被 IIS 拦截并缓存,无法实时逐字输出
  • HTTP协议配置冲突:FastCGI 默认不支持分块传输编码(Chunked Transfer Encoding)

解决方案

1. 禁用 FastCGI 响应缓冲 通过修改 IIS 的 FastCGI 配置禁用缓冲:

1. 打开 IIS 管理器

2. 进入 FastCGI 设置(服务器节点 → FastCGI 设置)

如何使用flask完成数据传输?  第1张

在这里插入图片描述

3. 找到 Python 的 FastCGI 应用(如 wfastcgi.py

如何使用flask完成数据传输?  第2张

在这里插入图片描述

4. 添加以下环境变量:

Name: WSGI_BUFFERING
Value: 0

2. 配置 Flask 响应头app.py 的流式响应中添加防缓存头:

@app.route('/api/ask', methods=['POST']) def ask(): # ...原有代码... return Response( generate(), mimetype='text/event-stream', headers={ 'Cache-Control': 'no-cache', 'X-Accel-Buffering': 'no' # 强制禁用 Nginx/IIS 缓冲 } )

3. 禁用 IIS 动态压缩 动态内容压缩会强制缓冲数据:

1. 进入 IIS 管理器

2. 打开 压缩 功能

如何使用flask完成数据传输?  第3张

在这里插入图片描述

3. 取消勾选 启用动态内容压缩

如何使用flask完成数据传输?  第4张

在这里插入图片描述

4. 验证 MIME 类型

确保 IIS 允许 text/event-stream 类型:

1. 打开 IIS 管理器

如何使用flask完成数据传输?  第5张

在这里插入图片描述

2. 进入 MIME 类型 设置

如何使用flask完成数据传输?  第6张

在这里插入图片描述

3. 添加以下类型:

扩展名: .*
MIME 类型: text/event-stream

备选方案

如果仍不生效,可改用反向代理模式:

1. 使用 WaitressCherryPy 作为生产服务器运行 Flask:

pip install waitress waitress-serve --port=5000 app:app

2. 在 IIS 中配置 URL 重写 规则,将请求反向代理到 http://localhost:5000

验证步骤

  1. 重启 IIS 服务(或应用程序池)
  2. 使用浏览器开发者工具检查响应头:
http HTTP/1.1 200 OK
Content-Type: text/event-stream
Cache-Control: no-cache
X-Accel-Buffering: no
Transfer-Encoding: chunked # 确保启用分块传输

3. 观察前端是否实时接收流式数据

完成上述步骤后,逐字输出效果应恢复正常。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/03/12059.html

分享给朋友:

相关文章

互联网算命,是不是个好生意?能不能赚钱?

互联网算命,是不是个好生意?能不能赚钱?

现在的年轻人也开始“迷信”了。疫情、降薪、失业、内卷……2020年或许是这届年轻人最为困难的一年,无尽的焦虑与压力之下,他们陷入了失落与迷茫之中,失去了未来的方向。如果此时有人能够为你指引出未来的道路,你是会走出迷茫呢?玄学就是在这样的一个…

你手机里有哪些堪称神器的 App?

你手机里有哪些堪称神器的 App?

嗨嗨,我是赢酱~ 首先我认为对于我们有用的提升自我的都是手机里的神器 App。 一个人应该什么样子呢?在我从女孩子的角度看来,自律,上进,会打扮,情商高,会挣钱,独立,落落大方,这才是应该有的样子,我们可以借助手机不断学习改变 今天给大家准…

为什么我感受不到 1500 元的手机比四五千的差?

我长期使用两千元左右的安卓机,一天接近8小时的重度手机使用者。 某天我突然想试试看传说中非常赛艇的苹果。狠了心,砸了钱。七千大样买了爱疯。 就这?什么辣鸡玩意。而且因为我一直更新软件,用了两年爱疯就卡了。并没有传说中的用四五年不卡。 用了这…

中国芯片产量达1399亿颗,这意味着什么?

美国并不是没有明白人,只是特朗普不懂芯片产业的情况,冒冒失失在ZZ正确下,开启了对中国芯片的掐脖子,结果没掐死,反而让人练出了铁肺。 芯片是所有科技产业的上游,美国原本在上游呆得很舒服,靠英伟达、AMD、德州仪器、高通等这些几十年霸主地位的…

报名的网课分期付款怎么退?

你在你分期付款的订单下面有客服电话,直接打电话描述一下你的问题,你可以告诉他你是被恶意绑定的,在不了解有退学条件这一说的情况下报的课程,可能遇到消费者诈骗了,不承认有退学金,说是霸王条款,诈骗消费者,你若分期了先把自动续费关了,别让自己个人…

抖音上有一些账号搬运别人的视频,几乎一模一样,也没判搬运,他们是怎么做到的??

对于任何短视频平台来说,如何用最低的成本快速实现伪原创搬运都是需要解决的问题。 所有的短视频平台,包括抖音、快手、tiktok、视频号、小红书、B站,甚至是FB、推特、INS、YouTube,它们的查重技术都是类似的,只要你在网络环境设置得…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。