我正在尝试从我的 webapp 中的操作返回 CSV,并提示用户下载文件或从电子表格应用程序中打开它。我可以让 CSV 吐出到屏幕上,但是如何更改文件的类型,以便浏览器识别这不应该显示为 HTML?我可以为此使用 csv 模块吗?
import csv
def results_csv(self):
data = ['895', '898', '897']
return data
要告诉浏览器您提供的内容类型,您需要将Content-type
标题设置为“text/csv”。在您的 Pylons 函数中,以下内容应该可以完成这项工作:
response.headers['Content-type'] = 'text/csv'
PAG 是正确的,但此外,如果您想为下载的文件建议一个名称,您也可以设置response.headers['Content-disposition'] = 'attachment; filename=suggest.csv'
是的,您可以为此使用 csv 模块:
import csv
from cStringIO import StringIO
...
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()