我想处理一个,并发送到下载作为一个CSV没有临时文件。我见过的实现这一目标的最佳方法是使用StringIO
。使用下面的代码,文件以正确的名称下载,但是文件是完全空白的,并且没有显示错误。为什么文件不包含数据?
@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'
)
发布于 2021-08-17 05:20:02
make_response
make_response
函数,该函数返回一个Response
对象。text/csv
,以便使web浏览器将其保存在html文档之外的其他文件中。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
文件
参考资料
纳米斯
发布于 2016-09-02 01:28:29
如果有人将python2.7与烧瓶一起使用,并通过导入模块StringIO获得了错误。这篇文章可以帮助你解决问题。
如果要导入String IO模块,只需使用以下方法更改导入语法:从io导入,从io导入StringIO,而使用从StringIO导入StringIO。
如果您使用的是图像或其他一些重新源,也可以从io导入 BytesIO。
谢谢
https://stackoverflow.com/questions/35710361
复制