27. 生成CSV文件

CSV(Comma-Separated Values)文件中文件字符分隔值,CSV文件以纯文本形式存储表格数据(数字和文本),可以被常见制表工具(excel等)直接读取

目录

1  生成CSV

2  结合django使用csv

2.1  方案1

2.2  方案2

3  分页配合csv文件


1  生成CSV

我们使用python内建的csv库来操作csv文件

  • open生成CSV文件必须有newline且newline必须是空字符串
  • writerow()调用一次就会写一行

运行后在代码的同级目录中会出现生成的csv文件

打开后发现与我们输入的内容一致

writerow()的参数只要是一个列表就行,所以我们可以使用查询数据的结果生成csv文件,我下面会用数据表做例子

2  结合django使用csv

目的都是搞一个路由,然后访问这个路由就可以得到生成的csv文件

2.1  方案1

生成放static中,然后302到static就能下载了

路由

视图

之后我们访问download_csv1

  • 由于302到static,所以地址栏不会显示download_csv1

打开下载好的test.csv,发现其中是我们需要的内容

2.2  方案2

方案二对响应做出一些修改

  • 修改content_type,告知浏览器该文档是CSV文件,而不是HTML文件
  • 修改Content-Disposition,告知浏览器有附件,响应后需要保存

csv.writer()的参数为csv文档对象,此时response就是一个csv文档对象,所以可以放在csv.writer()中

之后我们搞一个路由

然后访问一下

效果与方案一相同

点开后发现是我们想要的数据

方案二相较于方案一不需要使用static,也不需要特意搞路由

3  分页配合csv文件

有时会有下载当前页内容的需求,我们使用之前的分页来搞一下

搞一个下载每页CSV的视图

再搞一个路由

最后在分页的html中加入一个a标签

  • 链接地址一定要给查询字符串

之后我们访问一下分页的路由,然后点击下载该页信息

打开后发现符合要求

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值