【Django】本地csv数据的页面table展示

原创 2016年05月31日 16:31:50

实现目标:

1 pandas:从本地读取csv文件,返回dataFrame数据格式。这里是考虑到未来以后要对数据进行分析结果。

2 将DataFrame转化为json数据,返回到前端

3 jQuery发送请求,接收json数据并灌到table标签中


1 views.py

def ajax_list(req):
    a = req.GET.get('a')   #获取参数
    print 'list a',a
    b = req.GET.get('b')
   # result = a + b
   # print result
    authors = Author.objects.all()  # model
    print authors 
    list_author =[]
    for author in authors:
        list_author.append(author.name) 

    df = pd.read_csv("E:/ceshi3.csv")
    df = df.ix[:10,:]   #这里是为了获取少量测试数据

    json_df = df_json(df)  #转json 
    print json_df
    return JsonResponse({'authors':list_author,'df':json_df}) 


2 dataFrame转json

def df_json(df):

    dict_df = df.T.to_dict(outtype='list')   # dataFrame转dict,0.18版本api有to_json(),按照行归集,但是缺少column
    print dict_df
    print len(dict_df)
    dict_df['column']=list(df.columns)   #把column添加进dict
    print dict_df

    json_df = eval(str(dict_df)) <span style="color:#ff6666;"> #这里的原因是为了解决dict_df 的index不是string类型,在json.dumps会报错</span>
    print type(json_df)
    print json.dumps(json_df)

    json_df = json.dumps(json_df)
    return  json_df


3 index.html

$("#list").click(function(){

     a = $("#a").val();
     b = $('#b').val();

     data = {'a':a,'b':b}

    $.ajax({
        type:'GET',    # method
        url:'/blog/ajax_list', #映射到views.py中ajax_list ,ajax是局部刷新
        data:data, #携带参数

        success:function(result){       #如果success 回调结果进行处理

            $("#lab").text("查询结果");

            authors = result['authors']
            df = result['df']

            alert(df)

            d = eval("("+df+")")  # eval() 是“”内的语句按照js进行执行
            alert(d)

            var html = '';


            var column = d["column"]
            alert(column)

            var len = column.length

            html += "<tr>"
            for(i=0;i<len;i++){
                html += "<th>" + column[i] + "</th>"
            }
            html += "</tr>"

            delete d.column
            alert(d)


            $.each(d,function(index,item){

            alert(index)
            alert(item)

            len = item.length
            alert(len)

            html += "<tr>"
            for(i=0;i<len;i++){

            html += "<td>"+item[i]+"</td>"
            }

            html += "</tr>"
            });
            $("#list_author").empty();    #先清table
            $("#list_author").append(html);  #先构造html 一次append 不要多次append 


            }


    });
    return false;

    });

1 <tr><td><th>

   <tr>下必须有<td>标签,

这样item显示不出来

var html = '';
$.each(authors,function(index,item){
alert(index)
alert(item)

html += "<tr>" + item + "</tr>";

});
$("#list_author").html(html);


2 $.each(data,function(index,item){

})   jQuery 对object 的遍历


3  eval 返回的是object类型

           d = eval("("+df+")")  # eval() 是“”内的语句按照js进行执行
            alert(d)

4 object的删除(delete)、索引、赋值

5 pandas中dataFrame转格式:to_record() / to_dict()
   注意参数是有要求的

6 import json

json.dumps()  dict转str   

json.loads()    str 转dict

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Django Admin安装可视化编辑器TinyMCE

最基本的原理就是在admin中的TextAreas中添加两个js文件,一个是配置文件,一个是TinyMCE的调用文件。 1,从TinyMCE官方网站下载最新版TinyMCE。地址:http://ti...

虚拟机Ubuntu和Xshell 5连接

初学Linux,老师说让装个Linux并用Xshell来连接,我自己看着网上的各种教程胡乱琢磨了一天,偶尔能连上也不知道是什么原因,连Vim也不知道。           先总结一下小小的教训:修改...
  • KHZ_222
  • KHZ_222
  • 2016年02月28日 10:07
  • 1386

通过Ajax请求后台数据,返回JSONArray(JsonObject),页面(Jquery)以table的形式展示

点击“会商人员情况表”,弹出层,显示一个表格,如下图: 利用Ajax和Jquery和JSONArray和JsonObject来实现: 代码如下: 在hspersons.html中: ...

R语言——read.table;read.csv(读取外部数据)

使用R语言的时候,如果是少量数据,不妨使用c()或其他函数进行创建;但是对于大量数据,最好还是先通过其他更方便的软件创建数据文件,然后使用R读入这个文件。 前文说,.csv是非常好的数据文件格式,跨平...
  • AnneQiQi
  • AnneQiQi
  • 2016年04月07日 14:28
  • 35384

在Ubuntu平台中读取CSV文件并用table进行展示

在今天的这篇文章中,我们将介绍如何读取一个CSV文件,并使用一个table进行展示数据。我们知道在Ubuntu平台中目前没有移植TableView。那么我们怎么来展示一个Table的数据呢? 答案是使...

页面数据导出CSV格式文件

先看一个例子:

jsp页面根据json数据动态生成table

对于java后台传给jsp页面的json形式的数据

asp.net如何将页面Table控件中的数据写到excel中总结

我们在做报表统计的时候,在页面中放个服务器端的控件Table1 在cs代码中自动组合行和列   第一种情况:页面有两个按钮,分别为显示报表按钮和导出报表 显示报表按钮将组合成的table中的数据显示到...

ajax请求得到后台数据,前台页面,使用table模板然后clone,显示表格,,不用append拼接 “字符串和HTML表格标签”

/*复制模板表格,并插入到指定位置,参数true,表示CSS和事件也克隆 */ $("#temp_table #temp_tr")...
  • quyunde
  • quyunde
  • 2017年05月25日 11:35
  • 346
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Django】本地csv数据的页面table展示
举报原因:
原因补充:

(最多只允许输入30个字)