在python中设置flask.response

时间:2018-06-10 01:34:59

标签: python python-3.x flask wsgi content-disposition

我想知道在发送烧瓶响应时是否允许您在一个标头内同时包含内容类型和内容处理。目前,我的代码运行如下:

headers = {
  "Content-Type" : mimetype,
  "Content-Disposition":
  "attachment;filename={}".format(flask.request.args.get('filename', key)),
}
return flask.Response(data, 200, headers)

但是当我点击链接下载它时,它会以文本文件的形式返回,名称为“download”。当我将文件类型更改为它应该是什么时,当我右键单击“保存”文件链接时,它也会变为正确的文件。

在相同的标头中设置我的内容类型和内容处置是否有问题?因为我不认为内容处置正在注册,因为文件不会作为具有名称下载的文本文档返回。

1 个答案:

答案 0 :(得分:1)

我使用稍微不同的方法来创建有效的响应:

from flask import make_response
##
##
resp = make_response(logs)
filename = "applog_%s.log" % datetime.now()
filename = filename.replace(" ", "_")
resp.headers['Content-Disposition'] = 'attachment;filename=' + filename
resp.mimetype = "text/plain"
return resp

修改

并确保filename参数中没有任何空格。我记得曾经让我很难过,这就是为什么我用下划线替换空格,正如你在上面的代码中看到的那样。