Django生成csv文件

酥酥 发布于 2021-09-18 60 次阅读


Django生成csv文件

csv文件定义

逗号分隔值(Comma-Separated Values, CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号) ,其文件以纯文本形式存储表格数据(数字和文本)

  • 说明:可被常见制表工具,如excel等直接进行读取

Python提供了内建库-csν;可直接通过该库操作csv文件

案例如下

import csv
with open('eggscsv,'w', newline=")as csvfile:
writer= csv.writer(csvfile)
writer.writerow(['a','b','c'])##每一行数据

csv文件下载

在网站中,实现下载CSV,注意如下:

  • 响应Content-Type类型需修改为text/csv。這这告诉浏览器该文档是CSV文件,而不是HTML文件

  • 响应会获得一个额外的Content- Disposition标头,其中包含CSV文件的名称。它将被浏览器用于开启 “另存为…”对话框

案例:

import csv
from django.http import HttpResponse
from .models import Book
def make_csv_view(request):
  response = HttpResponse(content_type='text/csv')
  response [' content-pisposition'] = 'attachment; filename"maybook.csy".
  all_book = Book.objects.all()
  writer = csv.writer(response)
  writer.writerow(['id', 'title'])
  for b in all_book:
  writer.writerow([b.id, b.titlel).
  return response