Loading

24.-Django生成csv文件及下载

一、csv文件定义
逗号分隔值(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']) #第一行写入a,b,c

 

 
三、csv文件下载
在网站中,实现下载csv文件,注意如下:
响应Conten-Type类型需要修改为text/csv 这告诉浏览器该问的是csv文件,而不是html文件
响应会获得一个额外的Content-Disposition标头,其中包含csv文件的名称,它将被浏览器开启 ‘另存为’对话框
 
 
import csv
from django.http import HttpResponse
from .moldes import Book


def make_csv_view(request):
    response = HttpResponse(content_type = 'text/csv') #修改响应头
    response['Content-Disposition] = 'attachment;filename = "test.csv"'   # attachment格式不可变
    all_data = Book.objects.all() 
    
    writer = csv.writer(response) #生成写对象
    writer.writerow(all_data) 
    return response
    
# 页绑定对应路由视图即可下载

  

posted @ 2022-01-12 12:34  木子七  阅读(178)  评论(0编辑  收藏  举报