108.生成和下载csv文件

生成CSV文件

有时候我们做的网站,需要将一些数据,生成一个csv文件返回浏览器,并且是作为附件的形式下载下来。

生成小的csv文件:

生成一个小的csv文件,我们用Python内置的csv模块来处理csv文件,并且使用HttpResponse来将csv文件返回回去。==采用python内置的csv模块创建csv文件示例代码如下:==
from .models import User
import csv
from django.template import loader, Context

def csv_views(request):
    # 1. 采用python内置的csv模块创建csv文件
    # 初始化HttpResponse对象,默认情况下,请求的头的类型为text/html,但是如果想要生成csv文件的话
    # 就要修改请求头的content_type=text/csv
    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = "attachment; filename=zjy.csv"

    # 对response对象做相应的写操作,因为HttpResponse实现了一个写操作。
    writer = csv.writer(response)
    # print(writer) => <_csv.writer object at 0x000001F6ADAB51A8>
    writer.writerow(['username', 'age', 'height'])
    writer.writerow(['孤烟逐云', '19', '167'])
    return response
以上使用csv模块的writer的方法将数据写入到response中,非常的不方便,可以首先自定义一个模板,之后向模板中添加数据就可以了。

==示例代码如下:==

from django.template import loader
from django.http import HttpResponse

def csv_view(request):
# 初始化HttpResponse对象,默认情况下请求头的类型为text/html,如果不进行修改的话,就会按照html的格式进行解析,这样的话,就不能够得到我们想要的效果了。
    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = "attachment; filename=zjy.csv"
    context = {
        'rows':[
        ['username', 'age'],
        ['孤烟逐云', 18],
        ]
    }

    # 自定义一个模板文件位于:book/templates/book/static/zjy.txt
    # zjy.txt文件的内容为:
    # {% for row in rows %} {{ row.0 }},{{ row.1 }}
    # {% endfor %}

    <!--加载模板文件-->
    template = loader.get_template('book/static/zjy.txt')
    <!--向模板文件中添加数据-->
    zjy_csv = template.render(context)
    response.content = zjy_csv
    return response
==总结:生成和下载csv文件的整体思路如下:==
(1)初始化HttpResponse对象的请求头的content_type为text/csv,并且设置为该文件为附件可以下载同时设置文件名:[‘Content-Disposition‘]="attachment; filename=zjy.csv",添加的Content-Disposition头,用来告诉浏览器该如何处理这个文件,我们将值设置为attachment;那么浏览器将不会对这个文件进行显示,而是作为福建的形式下载,第二个参数filename设置csv文件名。
(2)定义向模板中传递的数据context 为字典类型。
(3)从django.template中导入loader 方法,加载我们自定义好的模板文件,并且将我们的context使用render函数传入我们定义好的模板。之后将已经传入数据的模板做为response.content部分。
(4)最后一步就是返回response。

原文地址:https://www.cnblogs.com/guyan-2020/p/12293288.html

时间: 2024-08-13 02:01:06

108.生成和下载csv文件的相关文章

108:生成和下载csv文件

生成CSV文件: 有时候我们做的网站,需要将一些数据,生成有一个CSV文件给浏览器,并且是作为附件的形式下载下来.以下将讲解如何生成CSV文件. 生成小的CSV文件: 这里将用一个生成小的CSV文件为例,来把生成CSV文件的技术要点讲到位.我们用Python内置的csv模块来处理csv文件,并且使用HttpResponse来将csv文件返回回去.示例代码如下: from django.http import HttpResponse, JsonResponse import json, csv

使用PHP生成并导出CSV文件

CSV文件是以纯文本形式存储的,一般以逗号为分隔符.这里主要简单介绍下如何导出CSV文件. 一.浏览器导出CSV文件格式 /** * 导出CSV文件 */ function exportCsv() { // 需要导出的内容 $data = [ ['name' => '张三', 'score' => '80'], ['name' => '李四', 'score' => '90'], ['name' => '王五', 'score' => '60'], ]; // 文件名,

利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码

利用php CI force_download($filename, $data) 下载.csv 文件解决文件名乱码,文件内容乱码.做了很久终于知道了很好的解决方案. 1.加载辅助函数 $this->load->helper('download'); //下载辅助函数 $this->load->helper('string'); //字符编码转换辅助翻书 2.force_download($filename, $data)通过它的代码可以知道$data 必须是字符串,如果不是字符串

下载CSV文件到本机(SAP_CONVERT_TO_TEX_FORMAT)

CSV文件是逗号分隔符格式的文件.将内表数据下载成CSV文件到本机上要先将内表中的数据通过函数SAP_CONVERT_TO_TEX_FORMAT转换成CSV格式,然后再下载到本机. REPORT z_download_csv. TYPE-POOLS: truxs. *&---------------------------------------------------------------------* *& Data Types *&---------------------

使用JavaScript下载csv文件

前端可以使用JavaScript在客户端下载包含页面数据的文件,这里以下载CSV格式文件为例,代码如下: function downloadData(data, filename, type) { var file = new Blob(["\ufeff" + data], { type: type }); if (window.navigator.msSaveOrOpenBlob) // IE10+ window.navigator.msSaveOrOpenBlob(file, fi

将php数据下载csv文件

<?php $sales = array( array( 'Northeast', '2005-01-01', '2005-02-01', 12.54 ), array( 'Northwest', '2005-01-01', '2005-02-01', 546.33 ), array( 'Southeast', '2005-01-01', '2005-02-01', 93.26 ), array( 'Southeast', '2005-01-01', '2005-02-01', 945.21 )

Windows下python3生成UTF8的CSV文件和sha256sum踩坑记录

CSV的坑 在Ubuntu下是简单的写入完事 import csv ... with open(filename, 'w') as output: f = csv.writer(output) f.writerow(results[0].keys()) .在win7下, 用msys2环境执行同一个python脚本, 发现生成的csv有两个问题: 1)有空行, 2)编码变成了GB2312 关于空行的问题, 百度的结果都是open(filename, 'wb')来解决, 但是在python3下会报

django生成CSV文件

生成CSV和Excel文件:有时候我们做的网站,需要将一些数据导出到文件中以方便统计,在导出文件类型中生成CSV文件或者是Excel文件是常用的方式,导出的CSV文件或者Excel文件将以附件的方式下载下来,以下将讲解如何生成CSV文件. 生成小的CSV文件:我们用Python内置的csv模块来处理csv文件,并且使用HttpResponse来将csv文件返回回去,首先来介绍一下把数据写入到CSV文件的一种方法: import csv with open('abc.csv') as fp: wr

记一次java生成csv文件乱码的解决过程 (GB2312编码)

系统:win7 (格式:中文(简体,中国)) 工具:Eclipse (默认编码utf-8) 服务两个:[restful接口]  和 [服务*** server]. 场景:[服务*** server]多次调用[restful接口],每次[restful接口]会返回一个生成好的csv文件内容.[服务*** server]将每次[restful接口]返回的csv内容保存成一个csv文件.并将生成的多个csv文件打包成一个zip压缩包. [restful接口]:根据一组数据生成csv文件 1. java