当前位置: 首页 > news >正文

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标签

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

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

打开后发现符合要求

相关文章:

  • 【初学者入门C语言】之二维数组(七)
  • 深度学习 Day 14——利用卷神经网络实现运动鞋品牌识别
  • 索引的创建与设计原则(2)(适合创建索引情况 )
  • 写给Python社群的第2课:Python逻辑语句,天天要写的 if 和 while
  • 2022G3锅炉水处理考试练习题模拟考试平台操作
  • C++11:lambda表达式
  • [实践篇]13.6 QNX侧如何抓取日志?
  • Java中如何检测一个元素是否存在于HashSet对象中呢?
  • Cesium:OSGB倾斜摄影模型加载卡顿优化
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • 图解LeetCode——1694. 重新格式化电话号码(难度:简单)
  • 如何测试 Redis 缓存?
  • 二叉树的一些基本操作
  • 湖仓一体电商项目(二十四):合并Iceberg小文件
  • Java中如何向一个HashSet对象中添加元素呢?
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • Android单元测试 - 几个重要问题
  • Angular数据绑定机制
  • js
  • Laravel 实践之路: 数据库迁移与数据填充
  • Logstash 参考指南(目录)
  • nginx 配置多 域名 + 多 https
  • Odoo domain写法及运用
  • React-生命周期杂记
  • Redis字符串类型内部编码剖析
  • Spring Boot快速入门(一):Hello Spring Boot
  • tab.js分享及浏览器兼容性问题汇总
  • 闭包--闭包作用之保存(一)
  • 不上全站https的网站你们就等着被恶心死吧
  • 初识 webpack
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 力扣(LeetCode)357
  • 码农张的Bug人生 - 见面之礼
  • 删除表内多余的重复数据
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用SAX解析XML
  • 双管齐下,VMware的容器新战略
  • 小程序01:wepy框架整合iview webapp UI
  • 在Unity中实现一个简单的消息管理器
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • #HarmonyOS:软件安装window和mac预览Hello World
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (14)Hive调优——合并小文件
  • (2)STL算法之元素计数
  • (C#)获取字符编码的类
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (过滤器)Filter和(监听器)listener
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (三)docker:Dockerfile构建容器运行jar包
  • (十三)Maven插件解析运行机制
  • (四)图像的%2线性拉伸