from .models import User import csv from django.template import loader, Context def csv_views(request): # 1. 采用python内置的csv模块建立csv文件 # 初始化HttpResponse对象,默认状况下,请求的头的类型为text/html,可是若是想要生成csv文件的话 # 就要修改请求头的content_type=text/csv response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = "attachment; filename=zjy.csv" # 对response对象作相应的写操做,由于HttpResponse实现了一个写操做。 writer = csv.writer(response) # print(writer) => <_csv.writer object at 0x000001F6ADAB51A8> writer.writerow(['username', 'age', 'height']) writer.writerow(['孤烟逐云', '19', '167']) return response
==示例代码以下:==html
from django.template import loader from django.http import HttpResponse def csv_view(request): # 初始化HttpResponse对象,默认状况下请求头的类型为text/html,若是不进行修改的话,就会按照html的格式进行解析,这样的话,就不可以获得咱们想要的效果了。 response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = "attachment; filename=zjy.csv" context = { 'rows':[ ['username', 'age'], ['孤烟逐云', 18], ] } # 自定义一个模板文件位于:book/templates/book/static/zjy.txt # zjy.txt文件的内容为: # {% for row in rows %} {{ row.0 }},{{ row.1 }} # {% endfor %} <!--加载模板文件--> template = loader.get_template('book/static/zjy.txt') <!--向模板文件中添加数据--> zjy_csv = template.render(context) response.content = zjy_csv return response