2016-06-08 59 views
0

我有一个巨大的csv文件被另一个asp脚本调用,因为该文件是如此之大,asp文件在文件完成生成之前超时等待响应因此csv不会下载。有没有一种方法可以在生成csv时返回空白响应或一次返回一行csv文件?Python烧瓶:如何一次返回一个csv一行

+0

http://flask.pocoo.org/docs/0.11/patterns/streaming/ –

回答

6

可以使用瓶这样的流数据:

这是在飞行中产生大量CSV数据的基本视图功能。关键是要具有使用发电机来产生数据的内功能并然后调用该函数,并把它传递给响应对象:

from flask import Response 

@app.route('/large.csv') 
def generate_large_csv(): 
    def generate(): 
     for row in iter_all_rows(): 
      yield ','.join(row) + '\n' 
    return Response(generate(), mimetype='text/csv') 

每个产量表达被直接发送给浏览器。请注意,虽然某些WSGI中间件可能会破坏流式传输,但在调试环境中请注意配置文件和其他可能已启用的内容。

欲了解更多信息,请点击here

+1

应iter_all_rows())不'回响应((一行行,MIME类型= 'text/csv')'也工作? –

+0

'(我为x我)'**是**生成器。 –

+0

是的。你是对的。 –