当前位置:首页 > 每日看点 > 正文内容

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

卡卷网11个月前 (03-29)每日看点174

根本原因

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

分享给朋友:

相关文章

电视上哪个软件可以免费看电视直播?

电视上哪个软件可以免费看电视直播?

今天给大家推荐8款免费电视端直播看剧软件,感兴趣的朋友可以下载试一试!1、超级ITV 6.04免费看电视直播,央视卫视高清秒播,还有电影电视剧少儿体育等。2、小鲸电视 1.3.1小鲸电视是一款智能电视应用,集成了多个内容来源,包括腾讯视频、...

无人机真的是中国领先吗?

无人机真的是中国领先吗?

巧了这是。捡到了一台大疆。应该是别人飞丢的。在草丛中泡过水,轴承锈死,电池鼓涨已,经没有维修价值了。但作为玩电子的,免不了要把它解剖,研究一番。那么,我们看看它的国产化率能有多少吧。图片说话:解释一下吧。图一,高通 美国图二,MPS: 美国...

台积电通知其中国客户,从下周开始,所有 7nm 及以下芯片出货将停止。如何看待这一行为?

台积电通知其中国客户,从下周开始,所有 7nm 及以下芯片出货将停止。如何看待这一行为?

我说美国快要没招了,你信么?这次台积电宣布停止向中国大陆客户供应7纳米及更先进AI芯片,再加上前段时间台积电对华为的制裁,我们基本可以认为,台积电在高端芯片领域,已经彻底把大陆给拉黑了,这也意味着中美芯片战已经到了最关键的时刻,一旦我们克服...

有没有能够兼顾便携并且流畅运行各种AI应用的笔记本?求推荐?

有没有能够兼顾便携并且流畅运行各种AI应用的笔记本?求推荐?

看了下题主的描述,可以考虑「联想YOGA Air 15 Aura AI元启版」,今年9月底出的一款轻薄本,也通过了英特尔Evo严苛认证。处理器用了英特尔最新的「酷睿 Ultra 7 258V」,主要亮点就是AI性能、图形处理能力和能效,很适...

常微分方程的理论对偏微分方程的研究有没有帮助?

常微分方程的理论对偏微分方程的研究有没有帮助?

之前看到过一句话,好像是 Bourgain 说的,大意是做 ode 的做到深处就到了 pde,做 pde 的做到深处就到了 ode,ode 和 pde 最后是相通的。以我目前有限的知识,只知道下面两个方向:1. Hamilton 系统在现代...

是不是从Java培训班出来的人都被淘汰了?

真实个人经历。我就是从培训班出来的,但没有学完就跑出来了。当我明白什么人不管什么基础都能进培训班进行培训,学到什么程度都能保证他们包就业,我就知道不正常。我自己是大三下的时候去的,考研考到一半感觉无望,想抓紧时间学习技术,利用应届生身份准备...

发表评论

访客

看不清,换一张

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