zoukankan      html  css  js  c++  java
  • django+echarts

    思路:

    统一返回数据类型为json,然后前端发起Ajax请求后台数据接口

    views.py

    def count_blog(request):
        # 下面等价于:select distinct auth,count() as blog_count from cms_blogpost group by auth
        # auth_count_blog=BlogPost.objects.values('auth').distinct().annotate(blog_count=Count('auth')).all()
        # print '第1个作者的数量为:', auth_count_blog
        # auth_count_blog=[{'blog_count': 1, 'auth': u'guchen'}, {'blog_count': 1, 'auth': u'u6c6au5a07'},
         # {'blog_count': 7, 'auth': u'u8c37u6668'}]
        auth_count_blog={'blog_count': [10, 15, 20],
                         'auth': ["guchen", "wangjiao", "zhuzhu"]}
        #  向js中传递数据必须json.dumps()处理
        return render(request, 'count_blog.html', {'auth_count_blog': json.dumps(auth_count_blog)})

    count_blog.html

        <!--echarts图表-->
        <script type="text/javascript">
            // 基于准备好的dom,初始化echarts实例
            var myChart = echarts.init(document.getElementById('main'));
    
    // 显示标题,图例和空的坐标轴
    myChart.setOption({
        title: {
            text: '异步数据加载示例'
        },
        tooltip: {},
        legend: {
            data:['销量']
        },
        xAxis: {
            data: []
        },
        yAxis: {},
        series: [{
            name: '销量',
            type: 'bar',
            data: []
        }]
    });
    
    
        var auth_count_blog={}; //请求前先不要获取后端返回的数据,先定义空的字典
        $.get('/count_blog/').done(function (auth_count_blog) {
        <!--$.ajax({--> //用这种请求没有出来图
            auth_count_blog = {{auth_count_blog|safe}}; // 获取后台传来的数据需要加上safe过滤
    
            <!--url: '/count_blog/',-->
            <!--type: 'POST',-->
            <!--data: {},-->
            <!--dataType: 'json',-->
            <!--success:function(auth_count_blog){-->
               myChart.setOption({
            xAxis: {
                data: auth_count_blog['auth'] //获取字典的作者
            },
            yAxis: {},
            series: [{
                name: '销量',
                type: 'bar',
                data: auth_count_blog.blog_count //获取对应的作者的博客数
                }]
            });
                <!--}-->
        });
        </script>
        {% endblock %}
    </body>
    </html>

  • 相关阅读:
    To Do List
    Linux 替换文本中对空格为下划线
    Jumpserver开源堡垒机
    用jmeter编写脚本做实时线上监控
    Supervisor使用详解
    Python模块之pysnooper
    Java读取json文件并进行处理
    IOS APP自动化测试 真机测试 遇到的坑
    测试人员入职必须了解的东西包括下面一些内容
    linux 和MacBook下的批替换
  • 原文地址:https://www.cnblogs.com/gcgc/p/9584303.html
Copyright © 2011-2022 走看看