首页 > 其他分享 >25、Django-生成csv文件

25、Django-生成csv文件

时间:2024-07-09 22:44:06浏览次数:14  
标签:25 浏览器 文件 Django 响应 test import 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)
]
------------------------------------------------------------

 

标签:25,浏览器,文件,Django,响应,test,import,csv
From: https://www.cnblogs.com/littlecc/p/18202979

相关文章

  • 24、Django-网站分页功能-Pagintor类
    -Django提供了Paginator类可以方便的实现分页功能-Painator类位于django.core.pagintor模块中负责分页数据整体的管理对象的构造方法:paginator=Paginator(object_list,per_page)-参数:-object_list:需要分页的数据的对象列表-数据的个数-......
  • 23、Django-CSRF跨站伪造请求攻击
     配置:1、在settings.py中确认MIDDLEWARE中确保--django.middleware.csrf.CsrfViewMiddleware打开2、在模板中、form标签下添加如下标签:--{%csrf_token%}#这个就是页面中的暗号 案例views.py-------------------------------------------------......
  • 22、Django-中间件-Middleware
    1、中间件是Django请求/响应处理的钩子框架、他是一个轻量级的、低级的“插件”系统,用于全局改变Django的输入或输出2、中间件以类的形式体现3、每个中间件组件负责做一些特定的功能、例如:Django包含一个中间件组件AuthentucationMiddleware、它使用会话将用户与请求关联起来......
  • 29、Django-uWSGI项目部署
    WSGI(WebServerGatewayInterface)Web服务器网关接口、是Python应用程序或框架和Web服务器之间的一种接口、被广泛使用使用pythonmanage.pyrunserver通常只是再开发测试环境中使用当开发结束后、完善的项目代码需要在一个高效稳定的环境中运行、这时可以使用WSGI这里WSGI......
  • 28、Django-发送邮件
    SMTP全称是(SimpleMailTransferProtocol)即简单邮件传输协议(端口是25)-他是一组用于从源地址到目的地址传输邮件的规范、通过它来控制邮件的中转-属于推送协议-负责发送IMAP-邮件相关协议(InternetMailAccessProtocol)即交互式邮件访问协议、是一个应用层协议、端口是143-用来从本地邮件客户端(OutlookExporess、Foxmail、MzzillaThunderbird)访问远程服务......
  • 27、Django-文件上传
    上传规范:1、文件上传必须为POST提交方式2、表单'<form>'中文件上传时必须带有enctype="multipart/form-data"时才会有包含文件内容的数据3、表单中用<inputtype="file"name="xxx">标签上传文件#在视图函数中-用request.FILES取文件框的内容-file=request.FILES['xxx......
  • 30、Django-项目部署-nginx
     原理: 安装: 配置:-这里uwsgi_pass表示使用uwsgi协议转发代理-include表示加载uwsgi协议的参数(固定)-nginx-t  #检查配置文件语法  修改uWSGI:  socket表示启用uwsgi协议      ......
  • Django学习第六天
     启动项目命令pythonmanage.pyrunserver取消模态框功能js实现列表数据删除第二种实现思路使用jquery修改模态框标题编辑页面拿到数据库数据显示默认数据功能实现想要去数据库中获取数据时:对象/字典三种不同的数据类型使用Ajax传入数据实现表单编辑,删除,修改......
  • 16、 Django-多表操作-多个模块的关联-一对一的增删改查- models.onetoone()
    一对一不是数据库的一个连表操作、而是Django独有的一个连表操作、一对一相当于是特殊的一对多的关系、只是相当于加了unique=True models.pyfromdjango.dbimportmodels#身份证classIDCard(models.Model):idcard_num=models.CharField(max_length=18,unique=......
  • 15、 Django-多表操作-多个模块的关联-多对多的增删改查- models.manytomany()
    针对多对多的关系django会自动创建第三张表、也可以通过through参数指定第三张表 models.pyfromdjango.dbimportmodels#Createyourmodelshere.#多对多#用户表:电影=N:M#一个用户可以收藏多部电影#一部电影可以被不同的用户收藏#电影classMovie(models.M......