在使用Flask的python中,如何写出一个对象供下载?
我用的是烧瓶和领班。我需要在内存中构建的数据,我希望用户能够将这些数据下载到文本文件中。我不想将数据写入本地磁盘上的文件,并使其可供下载在使用Flask的python中,如何写出一个对象供下载?,python,python-2.7,file-io,download,flask,Python,Python 2.7,File Io,Download,Flask,我用的是烧瓶和领班。我需要在内存中构建的数据,我希望用户能够将这些数据下载到文本文件中。我不想将数据写入本地磁盘上的文件,并使其可供下载 我是python新手。我想我应该在内存中创建一些文件对象,然后设置响应头,也许吧?Flask文档的“模式”部分介绍了将文件流式传输到客户端而不将其保存到磁盘的过程。基本上,您要做的是返回一个完全成熟的对象来包装迭代器: from flask import Response # construct your app @app.route("/get-file
我是python新手。我想我应该在内存中创建一些文件对象,然后设置响应头,也许吧?Flask文档的“模式”部分介绍了将文件流式传输到客户端而不将其保存到磁盘的过程。基本上,您要做的是返回一个完全成熟的对象来包装迭代器:
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"})
我不知道结果中行的单元格是什么。。。正在做什么,你能解释一下吗?@swidnikk-这是一个生成器表达式-它类似于列表理解表达式
[x代表范围内的x(10)]
,只是它生成一个生成器对象而不是列表<代码>(范围(10)中的x代表x))不会一次生成整个列表。相反,每次调用\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。这些文档向您展示了使用yield
创建生成器的不同方法(def generator_func():对于范围(10)中的x:yield x
)存在表达式的嵌套,因为我假设了数据结构的列表类型。有道理吗?谢谢。我不知道如何查找更多信息。我现在明白了,并在这里的文档中找到了它:我想如果我正在创建的文件太大而无法保存在内存中,这将特别有用。