2016-06-08 57 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

是的。你是對的。 –