2024-07-09 22:34阅读: 16评论: 0推荐: 0

25、Django-生成csv文件

python提供了内建库 - csv、可以直接通过改库操作csv文件
案例如下:
写入csv文件
import csv
with open('eggs.csv', 'w', newline='') as csvfile:
write = csv.writer(csvfile)
write.writerow(['a', 'b', 'c'])

 

#csv文件下载
在网站中、实现下载csv、注意如下:
- 响应Content-Type 类型需修改为 test/csv 这告诉浏览器该文件是csv文件、而不是HTML文件
- 响应会获得一个额外的Content-Disposition标头、其中包含csv文件的名称、他将被浏览器用于开启 '另存为...'对话框

 

views.py
-----------------------------------------------------------------------------------------
from django.http import HttpResponse
from django.shortcuts import render
import csv
# Create your views here.
#访问http://127.0.0.1:8000/test_csv
#自动下载test.csv文件
def test_csv(request):
# 创建响应对象 、设置响应类型
response = HttpResponse(content_type='text/csv') # Content-Type、修改响应头
##添加特殊的响应头、只要有这个响应头浏览器就会弹出下载
#attachment: 是告诉浏览器,这个文件要下载下来
#filename: 是告诉浏览器,文件名是什么
response['Content-Disposition'] = 'attachment; filename="test.csv"'
all_data = ['a', 'b', 'c', 'd'] # 所有数据
# 创建csv写入对象
writer = csv.writer(response)
writer.writerow(all_data) # 写入数据
return response
-----------------------------------------------------------------------------------------------------
urls.py
--------------------------------------------------------
from django.contrib import admin
from django.urls import path
from download_csv import views
urlpatterns = [
path('admin/', admin.site.urls),
path('test_csv/', views.test_csv)
]
------------------------------------------------------------

 

本文作者:little小新

本文链接:https://www.cnblogs.com/littlecc/p/18202979

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   little小新  阅读(16)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起