如何使用make_response在Flask中下载文本文件?

时间:2019-11-12 16:21:02

标签: python rest flask

我想在目录中使用文本文件,以便在Flask中使用make_response,但是我写下的代码却无法解决。

这是我写下的用于使用make_response下载文本文件的代码。

@api.route('/structure_voice_log', methods=['POST'])
def download():
    response = make_response("hogehoge")
    response.headers["Content-Disposition"] = "attachment; filename=outbound.txt"
    response.headers["Content-type"] = "text/plain"
    return response

这是我发出的命令。

curl -L -i -H "Content-Type: application/json" http://localhost:17354/structure_voice_log -X POST -d '{"voice_log": "hogehoge"}'

以下是上述命令结束后的结果。

HTTP/1.0 200 OK
Content-type: text/plain
Content-Length: 8
Content-Disposition: attachment; filename=outbound.txt
Access-Control-Allow-Origin: *
Server: Werkzeug/0.15.5 Python/3.7.5
Date: Tue, 12 Nov 2019 16:15:44 GMT

hogehoge%

我得到的只是一个字符串“ hogehoge”,而不是文本文件。 我该怎么做? 使用此框架可能会出错。 如果您能帮助我,我将非常感谢。

1 个答案:

答案 0 :(得分:0)

make_response的第一个参数采用要显示的字符串。 可以改为使用send_file函数(https://pythonise.com/series/learning-flask/sending-files-with-flask)。

希望有帮助。 最好的问候