【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 cpu监控之二-----csv文件读取

csv读取
  • xiecj_2006
  • xiecj_2006
  • 2014年12月25日 21:42
  • 1076

python中pandas库中DataFrame对行和列的操作使用方法

用pandas中的DataFrame时选取行或列:import numpy as np import pandas as pd from pandas import Sereis, DataFrame...
  • xiaodongxiexie
  • xiaodongxiexie
  • 2016年11月10日 01:15
  • 231319

Debug: django model querysets-> pandas.Dataframe

问题描述在使用Django 的ORM model时,有时需要将数据导出并转变成pandas DataFrame。正常的流程应该是:import pandas as pd from model impo...
  • u011077672
  • u011077672
  • 2017年12月01日 22:42
  • 250

pandas 的 DataFrame 写入SQL数据库 使用 sqlalchemy

将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy import pandas as pd from sqlalchemy import create...
  • SmallTankPy
  • SmallTankPy
  • 2017年05月10日 14:11
  • 2725

Python Django+Echarts将数据作可视化输出

以上为最终结果 Django是开放源代码的Web应用框架,由Python语言编写。 pip3 install django安装Django,并加入系统变量Path。 创建Django项目,并在...
  • kissazhu
  • kissazhu
  • 2017年09月30日 13:47
  • 1384

Django前端与后台数据交互:用json传输数据到javascript来画hichart图表

前端和后台的数据传输是个很重要的环节.项目需要把数据用hichart显示出来,就涉及到Django后台传输数据到javascript的问题. 因为图表比较多,javascript部分写到单独的js文...
  • ycisacat
  • ycisacat
  • 2016年01月17日 00:26
  • 6985

Pycharm+Django+Python+MySQL开发 后台管理数据库

环境&工具:Mac pro + python3.6.2 + PyCharm2017.1.2 + Mysql5.7 + Django2.1创建前的配置安装MySQL,并已设置操作密码创建工程在PyCha...
  • a394268045
  • a394268045
  • 2017年10月11日 13:42
  • 6737

Django读取Mysql数据并显示在前端

一、首先按添加网页的步骤添加网页,我的网页名为table.html, app名为web table.html放到相应目录下, froms文件提前写好 修改views.py from dja...
  • GitzLiu
  • GitzLiu
  • 2017年01月20日 09:17
  • 9983

python 3.x + Django 读取csv文件报错:'utf-8' codec can't decode byte 0xba in position 0: invalid start byte

报错示例:
  • WJUNSING
  • WJUNSING
  • 2017年10月12日 20:02
  • 301

【跟着stackoverflow学Pandas】How to iterate over rows in a DataFrame in Pandas-DataFrame按行迭代

How to iterate over rows in a DataFrame in Pandas-DataFrame按行迭代
  • tanzuozhev
  • tanzuozhev
  • 2017年08月05日 11:17
  • 6958
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Django】本地csv数据的页面table展示
举报原因:
原因补充:

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