Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用Flask的python中,如何写出一个对象供下载?_Python_Python 2.7_File Io_Download_Flask - Fatal编程技术网

在使用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
)存在
表达式的嵌套
,因为我假设了数据结构的列表类型。有道理吗?谢谢。我不知道如何查找更多信息。我现在明白了,并在这里的文档中找到了它:我想如果我正在创建的文件太大而无法保存在内存中,这将特别有用。