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