文章目录

  • 一. 图表统计:表结构设计
  • 二. URL调整
  • 三. 后端功能实现
  • 四. 前端页面
    • 4.1 通用模板
    • 4.2 前端页面
  • 五. 页面测试
  • 参考:

一. 图表统计:表结构设计

图表统计是无需设计表结构的,是根据现有的表数据来生成可视化的图表。

二. URL调整

新增对应的 增删改查对应的URL,如下:

# 数据统计path('chart/list/', chart.chart_list),path('chart/bar/', chart.chart_bar),path('chart/pie/', chart.chart_pie),path('chart/line/', chart.chart_line),path('chart/highcharts/', chart.highcharts),

三. 后端功能实现

图表统计功能后端实现
chart.py

from django.shortcuts import render
from django.http import JsonResponsedef chart_list(request):""" 数据统计页面 """return render(request, 'chart_list.html')def chart_bar(request):""" 构造柱状图的数据 """# 数据可以去数据库中获取legend = ["只是甲", "NO.1"]series_list = [{"name": '只是甲',"type": 'bar',"data": [15, 20, 36, 10, 10, 10]},{"name": 'NO.1',"type": 'bar',"data": [45, 10, 66, 40, 20, 50]}]x_axis = ['1月', '2月', '4月', '5月', '6月', '7月']result = {"status": True,"data": {'legend': legend,'series_list': series_list,'x_axis': x_axis,}}return JsonResponse(result)def chart_pie(request):""" 构造饼图的数据 """db_data_list = [{"value": 2048, "name": 'IT部门'},{"value": 1735, "name": '运营'},{"value": 580, "name": '新媒体'},]result = {"status": True,"data": db_data_list}return JsonResponse(result)def chart_line(request):legend = ["上海", "广西"]series_list = [{"name": '上海',"type": 'line',"stack": 'Total',"data": [15, 20, 36, 10, 10, 10]},{"name": '广西',"type": 'line',"stack": 'Total',"data": [45, 10, 66, 40, 20, 50]}]x_axis = ['1月', '2月', '4月', '5月', '6月', '7月']result = {"status": True,"data": {'legend': legend,'series_list': series_list,'x_axis': x_axis,}}return JsonResponse(result)def highcharts(request):""" highcharts示例 """return render(request,'highcharts.html')

四. 前端页面

4.1 通用模板

layout.html

4.2 前端页面

chart_list.html

{% extends 'layout.html' %}
{% load static %}{% block content %}<div class="container"><div class="panel panel-default"><div class="panel-heading">折线图</div><div class="panel-body"><div id="m1" style="width: 100%;height: 300px"></div></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="m2" style="width: 100%;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"><div id="m3" style="width: 100%;height: 400px;"></div></div></div></div></div></div>
{% endblock %}{% block js %}<script src="{% static 'js/echarts.js' %}"></script><script type="text/javascript">$(function () {initLine();initBar();initPie();})/*** 初始化折线图*/function initLine() {var myChart = echarts.init(document.getElementById('m1'));var option = {title: {text: '分公司业绩图',left: "center",},tooltip: {trigger: 'axis'},legend: {data: [],bottom: 0},toolbox: {feature: {saveAsImage: {}}},xAxis: {type: 'category',boundaryGap: false,data: []},yAxis: {type: 'value'},series: []};$.ajax({url: '/chart/line/',type: "get",dataType: "JSON",success: function (res) {if (res.status) {option.legend.data = res.data.legend;option.xAxis.data = res.data.x_axis;option.series = res.data.series_list;myChart.setOption(option);}}})}/*** 初始化柱状图*/function initBar() {// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('m2'));// 指定图表的配置项和数据var option = {title: {text: '员工业绩阅读汇总信息',textAlign: "auto",left: "center",},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_list;// 使用刚指定的配置项和数据显示图表。myChart.setOption(option);}}})}/*** 初始化饼状图*/function initPie() {// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('m3'));var option = {title: {text: '部门预算占比',subtext: '广西分公司',left: 'center'},tooltip: {trigger: 'item'},legend: {bottom: 0},series: [{name: '预算',type: 'pie',radius: '50%',data: [{value: 1048, name: 'IT部门'},{value: 735, name: '运营'},{value: 580, name: '新媒体'},],emphasis: {itemStyle: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}}}]};$.ajax({url: "/chart/pie/",type: "get",dataType: "JSON",success: function (res) {if (res.status) {option.series[0].data = res.data;myChart.setOption(option);}}})}</script>
{% endblock %}

五. 页面测试

将官网下载的 echarts.js、echarts.min.js 文件拷贝到项目的app01/static/js 下

参考:

  1. https://www.bilibili.com/video/BV1NL41157ph

Django系列16-员工管理系统实战--echar图表统计相关推荐

  1. Django系列10-员工管理系统实战--靓号管理

    文章目录 一. 靓号管理:表结构设计 二. URL调整 三.后端功能实现 3.1 增删改查逻辑实现 3.2 分页逻辑实现 四. 前端页面 4.1 靓号列表 4.2 靓号新增 4.3 靓号修改 五. 测 ...

  2. 基于Django的员工管理系统

    目录 一.新建项目 二.创建app 三.设计表结构 四.在MySQL中生成表 五.静态文件管理 六.添加页面 七.模板的继承 一.新建项目 django-admin startproject 员工管理 ...

  3. 【毕业设计之python系列】基于django的奶茶店管理系统

     基于django的奶茶店管理系统  摘 要 近年来,奶茶的受欢迎程度在全球范围内迅速增长.随着奶茶店数量的增加,管理这些商店变得越来越复杂.店主需要同时处理库存.订单.员工和客户等各种任务,有效地管 ...

  4. django web app_妹子用半天时间开发一个员工管理系统,没错django就是这么强悍

    熟悉python的朋友都知道,django简直是web开发领域的一个大杀器. 请求.模板.ORM.admin 都自带,程序员可以很轻松的开发出一个网站或者管理系统. 今天给大家分享一个超简单的员工管理 ...

  5. SSM实战项目-员工管理系统 Spring+SpringMVC+MyBatis

    项目描述: JavaWeb实战之员工管理系统,一个完整的SSM整合项目,适用于刚学完SSM框架的伙伴,熟练一下SSM整合,融会贯通.基本的增删改查都有,功能比较完善.使用框架并不是很难,关键是要理解起 ...

  6. 用Django半天时间开发一个员工管理系统实例教程分享

    熟悉python的朋友都知道,django简直是web开发领域的一个大杀器. 请求.模板.ORM.admin 都自带,程序员可以很轻松的开发出一个网站或者管理系统. 今天小编给大家分享一个超简单的员工 ...

  7. SpringBoot项目实战:员工管理系统

    员工管理系统 该项目实现了以下功能,对应的源码与数据库文件在资源中可下载 项目部分展示 1. 数据库设计 创建数据库 employee,创建两个表 employee(员工表)和depart(部门表) ...

  8. springboot + vue + elementUI项目实战——简洁清新的员工管理系统(一)

    springboot + vue + elementUI + mybatis + redis 清新的员工管理系统 前言   从这期,项目从需求分析开始,一步步实现一个老经典的清新的员工管理系统,适合有 ...

  9. 视频教程-Python+Vue+Django前后端分离项目实战-Python

    Python+Vue+Django前后端分离项目实战 教学风格独特,以学员视角出发设计课程,难易适度,重点突出,架构清晰,将实战经验融合到教学中.讲授技术同时传递方法.得到广大学员的高度认可. 王进 ...

  10. 狂神Spring Boot 员工管理系统 超详细完整实现教程(小白轻松上手~)

    [SpringBoot-web系列]前文: SpringBoot-web开发(一): 静态资源的导入(源码分析) SpringBoot-web开发(二): 页面和图标定制(源码分析) SpringBo ...

最新文章

  1. 全球安全行业融资收购简报(2016年2月)
  2. php推荐引擎算法,推荐系统,第 2 部分: 开源引擎简介
  3. 8分频verilog线_Verilog设计分频器(面试必看)
  4. matlab 格式化文件,格式化matlab文件01_新建普通文件
  5. 解密微信小程序加密信息
  6. c++ vector拷贝构造_vector------stl学习笔记一
  7. java/android 做题中整理的碎片小贴士(12)
  8. 安装指定版本的Ionic或Cordova
  9. 十款经典游戏的Java版本(开源)
  10. 图解约瑟夫环(C语言实现)
  11. 几款Android 应用自动化测试工具
  12. 设计模式:简单工厂模式(C++实现)
  13. 容联七陌×惠州燃气丨用服务之光,点燃美好生活
  14. HBASE手动触发major_compact
  15. FS2120双节锂电池保护 IC
  16. MT8173芯片资料,MT8173处理器参数介绍
  17. 浅谈强缓存和协商缓存
  18. 命令行如何远程连接MySQL数据库
  19. 容器中启动ssh状态总是sshd is not running
  20. java类加载机制、类加载器、自定义类加载器

热门文章

  1. Verilog -- 乘法器Booth算法
  2. MyEclipse10破解详细说明
  3. 司机秘书:让司机省心的违章查询助手
  4. Dell Windows 10中Outlook无法发邮件的问题排查思路
  5. 如何写工作说明书(sow)
  6. 实验01 使用网络协议分析仪Wireshark
  7. 在Ubuntu上安装D-link DWA-131驱动
  8. c++ 制作木马病毒
  9. SNN系列|神经元模型篇(2) Izhikevich
  10. xp系统怎么telnet服务器,xp操作系统如何开启telnet服务?