我想使用該技術they describe here從瓶流一個CSV:如何通過sqlalchemy查詢從Flask中流式傳輸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')
我從SQLAlchemy的查詢返回購買對象的列表。我想將它寫入CSV,理想情況是通過對輸出到文件的屬性進行自定義。
不幸的是,我得到一個空白CSV作爲目前輸出:
@app.route('/sales_export.csv')
@login_required
def sales_export():
""" Export a CSV of all sales data """
def generate():
count = 0
fieldnames = [
'uuid',
'recipient_name',
'recipient_email',
'shipping_street_address_1',
'shipping_street_address_2',
'shipping_city',
'shipping_state',
'shipping_zip',
'purchaser_name',
'purchaser_email',
'personal_message',
'sold_at'
]
for i, row in enumerate(Purchase.query.all()):
if i == 0:
yield fieldnames
csv = ','.join(row) + '\n'
yield csv
return Response(generate(), mimetype='text/csv')
我要去哪裏錯了?
您應該確定問題源於何處。可能是sqlalchmey沒有返回數據,或者燒瓶沒有正確處理它。 嘗試在控制檯中打印Purchase.query.all的輸出以檢查sqlalchemy是否正在執行其應該的操作 – Marcom 2014-12-02 11:30:11
我的查詢從控制檯返回預期的對象列表。 – 2014-12-02 11:53:39
你有沒有想過這個? – diek 2015-01-24 18:02:42