• 前端页面导出CSV格式文件代码实现(后端采用Flask)


    参考链接:https://www.cnblogs.com/dengnan/p/3990211.html

    我使用的是参考链接的第一种方法

    具体思路就是在后端拼接出需要的data数据类型

    前端参考代码

    前端的思路就是通过向后端传递参数ta_csv查询出需要的数据,然后json.dumps()返回给前端

     var ta_csv = $("#drop").text()
     var label_data = null
    
          {#等待页面加载完成#}
          window.onload = function () {
              {#点击下载按钮#}
              document.getElementById("download").onclick = function () {
                  {#使用ajax从后端查询数据#}
                  $.ajax({
                      url: '/labels_csv/',
                      type: 'POST',
                      data: {"ta": ta_csv},
                      success: function (data) {
                          {#string数据类型的data,通过JSON.parse()转成对象类型#}
                          label_data = JSON.parse(data)['data'] 
    
                          exportCsv({
                              title: ["标签名", "文章数"],
                              titleForKey: ["num1", "num2"],
                              {#for循环取出label,num组成一个字典,append到列表中#}
                              data: label_data
                          });
                      }
                  })
              }
          }

    后端参考代码

    后端思路就是查询出下载的数据,然后拼接成前端需要下载的格式,这里注意return给前端的数据不能是list,数字之类的,最好json.dumps()序列化一下

    def labels_csv():
        data=[]
        #获取前端ajax传递的ta
        ta=request.form.get('ta').strip()
        #根据治疗领域查询出所有的标签数据,返回给前端做csv文件下载
        Labels = dbS.session.query(Label.label_name, func.count(Label.id)).filter(Label.ta == ta).group_by("label_name").all()
        for label in Labels:
            result = {}
            result["num1"]=label[0]
            result["num2"]=label[1]
            data.append(result)
    
        return json.dumps({'data':data})
  • 相关阅读:
    Eclipse中一个Web项目引用另一个项目中的类
    android adb shell中使用到的命令
    移动端服务器i-jetty下载编译安装及问题解决系列
    Windows和Ubuntu双系统独立分区安装的方法
    Mina2.0框架源码剖析(三)
    Mina2.0框架源码剖析(二)
    Mina2.0框架源码剖析(一)
    JBoss
    J2EE的体系结构
    微博三方登录
  • 原文地址:https://www.cnblogs.com/wangcuican/p/13162660.html
Copyright © 2020-2023  润新知