django+echarts+ajax异步+显示优化--基本例子

简介:

django+echarts+ajax异步+显示优化--基本例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
< div    style = "height:300px;" id = "echarts-line" ></ div >
 
##定义要显示的地方
 
 
< script  src = "/static/js/echarts.min.js" ></ script
#加载js
 
< script >
     $(function () {
         var server_info;
 
         var myChart = echarts.init(document.getElementById('echarts-line'));
         var option = {
             title: {
                 text: '机柜总数'
             },
             tooltip: {},
             legend: {
                 data:['总数']
             },
             xAxis: {
                 data: {{ name  | safe }}    ##第一次访问页面时,先从后端返回一个最新的数据,这样子就不会需要人们等着更新数据。
             },
             yAxis: {},
             series: [{
                 name: '销量',
                 type: 'bar',
                 data: {{ jq | safe }} ##第一次访问页面时,先从后端返回一个最新的数据
             }]
         };
         myChart.setOption(option, true);
 
{#        myChart.showLoading();#}   ## echarts 的显示加载页面
         setInterval( function () {     ##AJAX去获取数据通过showapi
 
                 $.ajax({
                     type: 'GET',
                     url: '/jigui/showapi',
                     dataType: 'json',
                     success: function (json) {
                         server_info = eval(json);
                     }
                 });
 
                     option.xAxis.data =  server_info.name;   ##赋值
                     option.series[0].data = server_info.jq;
{#                    myChart.hideLoading();#}   ## echarts 的隐藏加载页面
                     myChart.setOption(option, true);
 
                 }, 2000);  ##每隔2秒 获取一次,重新生成值
 
          window.onresize = function () {
             myChart.resize();      ##根据页面大小重新定义图形大小
         };
     });
 
</ script >



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@login_required (login_url = "/login.html" )
def  show(request):   ## 展示         第一次访问返回一个数据         
     name_id  =  models.JiguiInfo.objects. filter (id__gt = 0 )
     name  =  []
     jq  =  []
     for  in  name_id:
         name.append(i.name)
         jq.append(i.jq)
     
     ret  =  { 'name' : name,  'jq' : jq}
     
     return  render(request,  'jigui/show.html' ,{ 'name' :name, 'jq' :jq})
 
 
@login_required (login_url = "/login.html" )
def  showapi(request):   ## 展示    API返回数据
     name_id  =  models.JiguiInfo.objects. filter (id__gt = 0 )
     name  =  []
     jq  =  []
     for  in  name_id:
         name.append(i.name)
         jq.append(i.jq)
     
     ret = { 'name' :name, 'jq' :jq}
     return   HttpResponse(json.dumps(ret))









本文转自 295631788 51CTO博客,原文链接:http://blog.51cto.com/hequan/1954409,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
前端开发 JavaScript BI
Django教程第5章 | Web开发实战-数据统计图表(echarts、highchart)
使用echarts和highcharts图表库实现折线图、柱状图、饼图和数据集图
64 2
|
3月前
|
前端开发 JavaScript Python
Django 模板中使用 Ajax POST
Django 模板中使用 Ajax POST
17 0
|
3月前
|
JSON 前端开发 JavaScript
探秘 AJAX:让网页变得更智能的异步技术(下)
探秘 AJAX:让网页变得更智能的异步技术(下)
探秘 AJAX:让网页变得更智能的异步技术(下)
|
3月前
|
XML 前端开发 JavaScript
探秘 AJAX:让网页变得更智能的异步技术(上)
探秘 AJAX:让网页变得更智能的异步技术(上)
探秘 AJAX:让网页变得更智能的异步技术(上)
|
4月前
|
SQL Python BI
Django实践-07日志调试,Django-Debug-Toolbar配置与sql优化
Django实践-07日志调试,Django-Debug-Toolbar配置与sql优化
Django实践-07日志调试,Django-Debug-Toolbar配置与sql优化
|
4月前
|
前端开发 开发工具 git
Django实践-06导出excel/pdf/echarts
Django实践-06导出excel/pdf/echarts
Django实践-06导出excel/pdf/echarts
|
4月前
|
JSON 前端开发 JavaScript
Django实践-04静态资源和Ajax请求
Django实践-04静态资源和Ajax请求
Django实践-04静态资源和Ajax请求
|
4月前
|
JSON 前端开发 JavaScript
前端知识笔记(三十七)———Django与Ajax
前端知识笔记(三十七)———Django与Ajax
27 0
|
4月前
|
JSON 前端开发 JavaScript
前端知识笔记(二)———Django与Ajax
前端知识笔记(二)———Django与Ajax
28 0
|
5月前
|
SQL 前端开发 JavaScript
29 Django高级- Ajax
29 Django高级- Ajax
30 0