23

我正在使用 Flask 和运行工头。我在内存中构建的数据,我希望用户能够将这些数据下载到文本文件中。我不想将数据写入本地磁盘上的文件并使其可供下载。

我是 python 新手。我想我会在内存中创建一些文件对象,然后设置响应头,也许?

4

1 回答 1

40

将文件流式传输到客户端而不将它们保存到磁盘在 Flask 文档的“模式”部分 - 特别是在流式传输部分中进行了介绍Response基本上,您所做的是返回一个包装迭代器的成熟对象:

from flask import Response

# construct your app

@app.route("/get-file")
def get_file():
    results = generate_file_data()
    generator = (cell for row in results
                    for cell in row)

    return Response(generator,
                       mimetype="text/plain",
                       headers={"Content-Disposition":
                                    "attachment;filename=test.txt"})
于 2012-08-29T03:27:45.697 回答