You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Flask提供CSV文件并在网页显示而非自动下载?

Flask端点返回CSV内容在网页直接显示而非自动下载的解决方案

方法一:直接读取文件内容并返回文本响应

跳过send_file的默认处理逻辑,手动构建响应头确保内容内联显示:

@app.route("/csv")
def get_csv():
    with open('data.csv', 'r', encoding='utf-8') as f:
        csv_content = f.read()
    # 返回内容、状态码和自定义响应头
    return csv_content, 200, {
        'Content-Type': 'text/plain; charset=utf-8',
        'Content-Disposition': 'inline'
    }

方法二:修改send_file的参数配置

如果坚持使用send_file,需要覆盖默认的MIME类型和响应头:

@app.route("/csv")
def get_csv():
    return send_file(
        'data.csv',
        mimetype='text/plain',  # 让浏览器识别为普通文本
        as_attachment=False,
        download_name=None,  # 不指定下载文件名
        headers={'Content-Disposition': 'inline'}  # 强制内联显示
    )

关键说明

  • Content-Type设置:使用text/plain而非text/csv,因为部分浏览器会默认对text/csv类型触发下载行为;指定编码确保中文等特殊字符显示正常。
  • Content-Disposition:明确设置为inline,告诉浏览器直接在页面内显示内容,而不是作为附件下载。
  • 若仍出现下载,可检查浏览器是否有强制下载CSV的扩展或默认设置,可尝试在隐私模式下测试。

内容的提问来源于stack exchange,提问作者Anchey Peng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 18:42:08