【Django】教程-12-柱状图

【Django】教程-1-安装+创建项目+目录结构介绍
【Django】教程-2-前端-目录结构介绍
【Django】教程-3-数据库相关介绍
【Django】教程-4-一个增删改查的Demo
【Django】教程-5-ModelForm增删改查+规则校验【正则+钩子函数】
【Django】教程-6-搜索框-条件查询前后端
【Django】教程-7-分页,默认使用django的
【Django】教程-8-页面时间组件
【Django】教程-9-登录+退出
【Django】教程-10-ajax请求Demo,结合使用
【Django】教程-11-ajax弹窗实现增删改查

18. 图

18.1 柱状图

chart_view.py

python 复制代码
from django.http import JsonResponse
from django.shortcuts import render


def list(request):
    """ 数据统计页面"""

    return render(request, 'chart/chart_list.html')


def chart_bar(request):
    """ 构造 柱状图的数据"""
# 具体数据,可以通过数据查询获取,修改具体字段的值,返回 
    legend = ["销量", "业绩"]
    x_axis = ['1月', '2月', '3月', '4月', "5月", "6月", "7月", "8月"]
    series = [{
        "name": '销量',
        "type": 'bar',
        "data": [10, 20, 15, 5, 8, 34, 33, 72]
    }, {
        "name": '业绩',
        "type": 'bar',
        "data": [15, 24, 53, 9, 25, 63, 21, 23]
    }]
    result = {
        "status": True,
        "data": {
            "legend": legend, "series": series, "x_axis": x_axis
        }
    }

    return JsonResponse(result)

urls.py 增加下面,layout.html 增加跳转连接 <li><a href="/chart/list">数据统计</a></li>

复制代码
path('chart/list', chart_view.list),
path('chart/bar', chart_view.chart_bar),

chart_list.html

html 复制代码
{% extends 'login/layout.html' %}
{% load static %}
{% block content %}
    <div class="container">
        <div class="panel panel-default">
            <div class="panel-heading">折线图</div>
            <div class="panel-body">
                Panel content
            </div>
        </div>
        <div class="row">
            <div class="col-sm-8">
                <div class="panel panel-default">
                    <div class="panel-heading">柱状图</div>
                    <div class="panel-body">
                        <div id="m1" style="width: 680px;height: 400px"></div>
                    </div>
                </div>
            </div>
            <div class="col-sm-4">
                <div class="panel panel-default">
                    <div class="panel-heading">饼图</div>
                    <div class="panel-body">
                        Panel content
                    </div>
                </div>
            </div>
        </div>
    </div>

{% endblock %}

{% block js %}
    <script src="{% static 'js/echarts.min.js' %}"></script>
    <script src=https://code.jquery.com/jquery-3.6.0.min.js></script>
    <script type="text/javascript">
        $(function () {
            initBar();
        })

        /**初始化,柱状图
         * */
        function initBar() {
            // 基于准备好的dom,初始化echarts实例
            var myChart = echarts.init(document.getElementById('m1'));

            // 指定图表的配置项 和 数据
            var option = {
                title: {
                    text: '业绩排行榜-展示'
                },
                tooltip: {},
                legend: {
                    data: [], // 后台获取
                    bottom: 0
                },
                xAxis: {
                    data: [] // 后台获取
                },
                yAxis: {},
                series: [] // 后台获取
            };

            $.ajax({
                url: '/chart/bar',
                type: "get",
                dataType: "JSON",
                success: function (res) {
                    // 将后台返回的数据,写到option中,
                    if (res.status) {
                        option.legend.data = res.data.legend;
                        option.xAxis.data = res.data.x_axis;
                        option.series = res.data.series;

                        // 使用指定的配置项 和 数据显示图表
                        myChart.setOption(option);
                    }
                }
            })
        }
    </script>
{% endblock %}

效果图

相关推荐
码云骑士5 天前
31-慢查询排查全流程(上)-Django-Debug-Toolbar与EXPLAIN入门
后端·python·django
龙腾AI白云5 天前
数字孪生和世界模型,二者的技术边界正在慢慢融合吗?
人工智能·django·知识图谱
码云骑士5 天前
30-在线图书管理系统-Django从零搭建到上线部署完整实战
后端·python·django
2601_961875245 天前
花生十三资源盘|电子版|全科
python·django·flask·virtualenv·scikit-learn·pygame·tornado
码云骑士6 天前
28-Docker部署Django(下)-docker-compose编排与静态文件处理
docker·容器·django
码云骑士6 天前
23-Django-ORM的N+1问题-select_related与prefetch_related详解
后端·python·django
摸摸芋6 天前
Django框架(1)
后端·python·django
码云骑士6 天前
27-Docker部署Django(上)-从2GB到180MB的镜像瘦身实战
docker·容器·django
杰杰7986 天前
DRF的分页讲解-入门篇 三个基础分页类介绍
python·django
王小王-1236 天前
基于电脑硬件市场数据分析与可视化系统
数据库·数据分析·django·sqlite·电脑·电脑硬件数据·电脑硬件市场分析