[django]django+post+ajax+highcharts使用方法

直接代码展示:

view.py文件代码

from django.http import JsonResponse #django ajax部分

def ajax_kchart(request):  
    times = request.POST['shijian']
    chnl = request.POST['chnl']
    chnl_data = keywork_chart(chnl,times)
    data_list = []
    for j in chnl_data:
        data_list.append(j)
    return JsonResponse(data_list,safe=False)

这里重点关注两点 ajax_kchart函数名 和 JsonResponse(data_list,safe=False)返回json的函数

ajax_kchart函数名需要出现在url配置中,Django 1.7 及以后的版本才可以用到JsonResponse,若返回参数是列表,要令safe=False

url.py代码:

url(r'^workchart/$', 'keywork.views.ajax_kchart', name='ajax_kchart'),

模板代码:

{% load staticfiles %}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>      
    <script src="{% static 'js/jquery/jquery.min.js' %}"></script>
    <script src="{% static 'js/Highcharts/js/highcharts.js' %}"></script>
    <script>
    $(document).ready(function(){ 
       $("#btn3").click(function(){                  
                  $.post("{% url 'ajax_kchart' %}",            
                     {
                       csrfmiddlewaretoken:"{{ csrf_token }}",
                       shijian:$("#shijian3").val(),
                       chnl:$("#mkt_chnl").val(),
                   },
                   function (data,status) {
                       var day_id = [];
                         var ydxz = [];
                         var ydjz = [];    
                         var kdxz = [];
                         var kdjz = [];
                         var dsxz = [];
                         var dsjz = [];
                         var lbdg = [];
                         var sjqz = [];
                         var sjxz = [];
                         var ftth = [];
                       for (var i = 0; i <= data.length - 1; i++) { 
                            var cdma_jz = data[i].cdma_xz + data[i].cdma_zdcj;
                         var adsl_jz = data[i].adsl_xz + data[i].adsl_zdcj;
                         var iptv_jz = data[i].iptv_xz + data[i].iptv_zdcj;
                         var pstn_jz = data[i].pstn_xz + data[i].pstn_zdcj;
                            $("#zhiju").html(data[i].mkt_chnl_name);
                            day_id.push(data[i].day_id);
                            ydxz.push(data[i].cdma_xz);
                         ydjz.push(cdma_jz);
                         kdxz.push(data[i].adsl_xz);
                         kdjz.push(adsl_jz);
                         dsxz.push(data[i].iptv_xz);
                         dsjz.push(iptv_jz);
                         lbdg.push(data[i].dlb_dg);
                         sjqz.push(data[i].cdma_qz);
                         sjxz.push(data[i].sjsg_xz);
                         ftth.push(data[i].ftth_xz);
                          };
                          $('#cdma_chart').highcharts({  //移动业务发展图表
                              chart: {
                                  type: 'line'
                              },
                              title: {
                                  text: '移动业务发展量'
                              },
                              xAxis: {
                                  categories: day_id
                              },
                              yAxis: {
                                  title: {
                                      text:  ''
                                  }
                              },
                              series: [{
                                  name: '移动新增',
                                  data: ydxz
                              }, {
                                  name: '移动净增',
                                  data: ydjz
                              },{
                                  name: '4G新增',
                                  data: sjxz
                              }
                              ],
                              plotOptions: {
                                  line: {
                                      dataLabels: {//数据标签
                                          enabled: true
                                      }
                                  },    
                                  series: {//延迟加载
                                        animation: false
                                  }
                              },
                         });
                    } }
</script>
/head>
<body>
 <form class="form-inline">
               {% csrf_token %}
            <label class="control-label"><i class="icon-time"></i> 时间</label>
            <select name="shijian3" id="shijian3" class="input-small" placeholder=".input-small">
                  {%for d in downlist%}       
              <option value="{{d.day_id}}">{{d.day_id}}</option>     
              {%endfor%} 
            </select>
            &nbsp;&nbsp;
            <label class="control-label"><i class="icon-eye-open"></i> 支局</label>
            <select name="mkt_chnl" id="mkt_chnl" class="input-small" placeholder=".input-small">
                  {% for d in data %}       
              <option value="{{d.mkt_chnl_id}}">{{d.mkt_chnl_name}}</option>     
              {%endfor%} 
            </select>
            <input type="button" id="btn3" value="查询" class="btn btn-primary btn-sm"/>             
           </form>
           <div class="chart" id="cdma_chart"></div>
</body>
</html>


完毕!

转载于:https://www.cnblogs.com/CQ-LQJ/p/5303063.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程背景:    企业里面很多系统管理后台,用easyui + highcharts + django 进行后台管理的整合,而这块资料在网上资料甚少,很多有经验的朋友在做这块时候也经常出现各种问题,目前我们老师以前在大数据真实项目中用到这块,现在受一些网友建议单独录制easyui + highcharts + django,希望可以帮助那些同学。视频+技术文档+源码让你看过后马上也可以搭建起来。  比如现在的友盟 和 百度统计 都是在类似这样的统计,我们会通过2~3个小时左右的课程,让你掌握这样的技术。   目标人群:  1、初级以上普通开发人员  2、web开发人员,对python感兴趣同学  3、对编程感兴趣的同学   课程目录:  01easyui_highcharts_django整合之需求介绍  02easyui_highcharts_django整合通过pycharm创建项目  03easyui_highcharts_django整合配置路由显示第一个页面  04easyui_highcharts_django整合下载easyui资源并且导入到项目里面  05easyui_highcharts_django整合修改配置文件加载static静态文件  06easyui_highcharts_django整合对页面进行修改  07easyui_highcharts_django整合对合并母模板layout  08easyui_highcharts_django整合添加一个新的业务的代码实现流程  09easyui_highcharts_django整合highcharts简单介绍  10easyui_highcharts_django整合highcharts的整合到django里面  11easyui_highcharts_django整合快速做出另一个业务流程  12easyui_highcharts_django整合柱状图  13easyui_highcharts_django后台返回json数据并且展示   14大数据django后台数据保存到mysql里面  15大数据django从mysql里面读取数据并显示到页面上面  课程环境:    环境:win10,  python 2.7.13,  django 1.8.3 ,  pymsql   收获预期:    1.使用django开发项目  2.学会使用easyui框架  3.学会使用highcharts  4.easyui_highcharts_django开发后面展示项目   案例截图:      

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值