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)
]
------------------------------------------------------------

 

posted @ 2024-07-09 22:34  little小新  阅读(9)  评论(0编辑  收藏  举报