首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python send_file StringIO空白文件

Python send_file StringIO空白文件
EN

Stack Overflow用户
提问于 2016-02-29 13:48:13
回答 2查看 32.3K关注 0票数 45

我想处理一个,并发送到下载作为一个CSV没有临时文件。我见过的实现这一目标的最佳方法是使用StringIO。使用下面的代码,文件以正确的名称下载,但是文件是完全空白的,并且没有显示错误。为什么文件不包含数据?

代码语言:javascript
运行
AI代码解释
复制
@app.route('/test_download', methods = ['POST'])
def test_download():
    buffer = StringIO()
    buffer.write('Just some letters.')
    buffer.seek(0)
    return send_file(
        buffer,
        as_attachment=True,
        download_name='a_file.txt',
        mimetype='text/csv'
    )
EN

回答 2

Stack Overflow用户

发布于 2021-08-17 05:20:02

make_response

  • 为了让文件下载到用户,我们将一个csv字符串传递给make_response函数,该函数返回一个Response对象。
  • 然后,我们添加一个,它告诉浏览器接受文件作为下载。
  • Mimetype还必须设置为text/csv,以便使web浏览器将其保存在html文档之外的其他文件中。
代码语言:javascript
运行
AI代码解释
复制
from flask import Flask, make_response  
app = Flask(__name__)

@app.route('/test_download', methods=['POST'])
def test_download():
    with StringIO() as buffer:
        # forming a StringIO object  
        buffer = StringIO()
        buffer.write('Just some letters.')
        # forming a Response object with Headers to return from flask 
        response = make_response(buffer.getvalue())
        response.headers['Content-Disposition'] = 'attachment; filename=namaste.csv'
        response.mimetype = 'text/csv'
        # return the Response object
        return response

P.S.优先使用python的内置csv库来处理csv文件

参考资料

纳米斯

票数 1
EN

Stack Overflow用户

发布于 2016-09-02 01:28:29

如果有人将python2.7与烧瓶一起使用,并通过导入模块StringIO获得了错误。这篇文章可以帮助你解决问题。

如果要导入String IO模块,只需使用以下方法更改导入语法:从io导入,从io导入StringIO,而使用从StringIO导入StringIO

如果您使用的是图像或其他一些重新源,也可以从io导入 BytesIO

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35710361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档