直接代码展示:

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>

完毕!

[django]django+post+ajax+highcharts使用方法的更多相关文章

  1. Django 如何让ajax的POST方法带上CSRF令牌

    问题 大家知道,在大前端领域,有一种叫做ajax的东东,即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),它被用来在不刷新页面的情况下,提 ...

  2. Django框架 之 Ajax

    Django框架 之 Ajax 浏览目录 AJAX准备知识 AJAX与XML的比较 AJAX简介 jQuery实现的ajax AJAX参数 AJAX请求如何设置csrf_token 序列化 一.AJA ...

  3. 根据Django后台的ajax大全

    一.什么是ajax 1.1 什么是JSON? AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语 ...

  4. Django中的Ajax详解

    AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当 ...

  5. Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法

    Django 资源 与 知识 Django中自建脚本并使用Django环境 model中的save()方法说明 filter()用法 2018/11/06 Chenxin 资料说明 Django基础入 ...

  6. Django如何与ajax通信

    示例一 文件结构 假设你已经创建好了一个Django项目和一个App,部分结构如下: mysite myapp |___views.py |___models.py |___forms.py |___ ...

  7. Django的日常-AJAX

    目录 Django的日常-AJAX AJAX简介 AJAX与JQ的一个实例 AJAX与contentType AJAX传json格式 AJAX传文件 Django的日常-AJAX AJAX简介 首先A ...

  8. Python 之 Django框架( Cookie和Session、Django中间件、AJAX、Django序列化)

    12.4 Cookie和Session 12.41 cookie Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务 ...

  9. django中post方法和get方法的不同

    当我们提交表单仅仅需要获取数据时就可以用GET: 而当我们提交表单时需要更改服务器数据的状态,或者说发送e-mail,或者其他不仅仅是获取并显示数据的时候就使用POST. 在这个搜索书籍的例子里,我们 ...

随机推荐

  1. javaMail使用163邮箱报535 Error: authentication failed

    javaMail使用网易163邮箱或者是126或者是网易其他邮箱报535 Error: authentication failed javax.mail.AuthenticationFailedExc ...

  2. Java并发编程:线程池的使用

    Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了, ...

  3. ubuntu下常用命令(一)

    1.查看目录 Ctrl+L 2.在终端下:复制命令:Ctrl + Shift + C 组合键.粘贴命令:Ctrl + Shift + V 组合键. 3.解压 tar xzf flie.tar.gz 4 ...

  4. java jni c++ 例子

    1. java程序 public class TestHello { static { System.loadLibrary("TestHello"); } public stat ...

  5. 高性能 Socket 组件 HP-Socket v3.1.3 正式发布

    HP-Socket 是一套通用的高性能 Windows Socket 组件,提供服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP/ ...

  6. ImFire即时通讯系统构建(前言)

    缘起termtalk 一切起源于我对蘑菇街termtalk开源IM系统源代码的好奇,termtalk简称tt.无论如何,都应该先向tt致敬,开源实属不易.看了一些分析tt架构的文章,感觉还不错,说是能 ...

  7. CSS3 float深入理解浮动资料整理

    CSS浮动(float,clear)通俗讲解 CSS 浮动 CSS float浮动的深入研究.详解及拓展(一) CSS float浮动的深入研究.详解及拓展(二) 1.浮动实现图文环绕(理解难点) 浮 ...

  8. 初识HTML

    前面的话 HTML文档的后缀一般都是.html,但是在以前,.htm后缀也是不少的,它们都代表html文档,实际上也没有本质的区别.htm是在win32时代,系统只能识别3位扩展名时使用的.现在一般都 ...

  9. JS学习笔记9之event事件及其他事件

    -->鼠标事件-->event事件对象-->默认事件-->键盘事件(keyCode)-->拖拽效果 一.鼠标事件 onclick ---------------鼠标点击事 ...

  10. CSS布局基础——BFC

    what's BFC? 第一次看到这个名词,我是拒绝的,css什么时候还有这个东西?于是迫不及待的google了一下,才发现原来它无时无刻不在我们的css当中,只不过它并不是一个属性,不需要我们平常使 ...