【问题标题】:Flask Response download doesn't work for large csv filesFlask Response 下载不适用于大型 csv 文件
【发布时间】:2023-01-26 14:08:04
【问题描述】:

我目前的流程是用户发布一个表单,我使用他们的输入获取一个 DataFrame,然后我尝试开始下载包含 DataFrame 数据的 csv。

当前代码:

return Response(
    df.to_csv(),
    mimetype="text/csv",
    headers={"Content-disposition": "attachment; filename=output.csv",
                         'Content-Type': 'application/octet-stream'})

这正确地开始下载少量数据,但如果我超过某个未知的大小阈值,则不会开始下载。我每次都打印 DataFrame 的头部,所以我知道该操作正在运行。

我的猜测是它以某种方式超时,或者由于文件大小而不接受响应。

我从另一个类似的线程添加了八位字节流标头。

编辑:这可能是 Chrome 的自动下载阻止。不确定如何解决这个问题,即定期下载 Chrome 不会发现可疑的内容。

【问题讨论】:

标签: python flask


【解决方案1】:

我正在运行一个 Flask 应用程序,并且自今年年初以来一直出现类似的症状。 我生成了 xlsx 并使用 send_file() 下载文件。直到去年,这一切都有效。我的应用程序中有多个页面具有相同的功能,有些页面继续正常工作。 我以为send_file()可能是原因,所以我开始使用response(),但是下载到一半就停止了。 使用 Chrome、Safari、Firefox 检查。

但是,这不会在本地重现,而是在 EC2 上运行时发生。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    相关资源
    最近更新 更多