如何从Pylons应用程序返回CSV?

Eri*_*Red 11 python csv pylons

我正在尝试从我的webapp中的操作返回CSV,并提示用户下载文件或从电子表格应用程序打开它.我可以将CSV吐出到屏幕上,但是如何更改文件的类型以便浏览器识别出这不应该显示为HTML?我可以使用csv模块吗?

import csv

def results_csv(self):

    data = ['895', '898', '897']

    return data
Run Code Online (Sandbox Code Playgroud)

PAG*_*PAG 12

要告诉浏览器您提供的内容类型,您需要将Content-type标题设置为"text/csv".在您的Pylons功能中,以下应该完成这项工作:

response.headers['Content-type'] = 'text/csv'


Ale*_*lli 9

PAG是正确的,但此外,如果您想为下载的文件建议名称,您也可以设置 response.headers['Content-disposition'] = 'attachment; filename=suggest.csv'


Mar*_*nas 8

是的,你可以使用csv模块:

import csv
from cStringIO import StringIO
Run Code Online (Sandbox Code Playgroud)

...

def results_csv(self):
    response.headers['Content-Type'] = 'text/csv'
    s = StringIO()
    writer = csv.writer(s)
    writer.writerow(['header', 'header', 'header'])
    writer.writerow([123, 456, 789])
    return s.getvalue()
Run Code Online (Sandbox Code Playgroud)