flask+js+python 导出csv

1. 首先增加html点击的button

<button class="btn btn-sm btn-primary" type="button" onclick="result_export()" 
id="export"><i class="fa fa-file-text-o"></i> 结果导出</button>

2. js相应点击事件

function result_export() {
    var param1 = "1";    #参数1, 非必需
    var param2 = "2";    #参数2, 非必需
   
    var url = "http://IP?XX";    #请求的url

    #url拼接 请求参数 , 非必需
    url += "?param1=" + param1 + "&param2=" + param2;

    var a = $("<a href='" + url + "'>download</a>").get(0);
    var e = document.createEvent('MouseEvents');
    e.initEvent('click', true, true);
    a.dispatchEvent(e);
}

3. python后端

import csv, os, re
from io import StringIO

def csv_export():
    param1 = get_parameter("param1")   #前端传过来的,非必需
    param2 = get_parameter("param2")   #前端传过来的,非必需
    result = []   #根据条件匹配到的list
    return download_csv(result)

def download_csv(result):
    user_data = [['param1', 'param2']]
    for one in result:
        user_data.append([one.get("param1"), one.get("param2")])
    def generate():
        data = StringIO()
        w = csv.writer(data)
        for i in user_data:
            w.writerow(i)
            yield data.getvalue()
            data.seek(0)
            data.truncate(0)
    response = Response(stream_with_context(generate()), mimetype='text/csv')
    response.headers.set("Content-Disposition", "attachment", filename="result.csv")
    return response

到这里就可以愉快的导出csv了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值