逗号分隔值(Comma-Separated Values,CSV,有时也成为字符分隔值,因为分割字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)
说明:可被常见制表工具,如excel等直接进行读取
二、python中生成csv文件Python提供了内建库 - csv;可直接通过该库操作csv文件
案例如下:
import csv
with open('eggs.csv', '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')
# 添加Content-Disposition标头
response['Content-Disposition'] = 'attachment;filename="mybook.csv"'
# 查找数据
all_book = Book.object.all()
# 响应对象传递给writer,往response中写
writer = csv.writer(response)
# 写表头
writer.writerow(['id','title'])
# 写数据
for book in all_book:
writer.writerow([book.id, book.title])
# 返回响应
return response