Django与图表的数据交互的实现
目录
- 环境相关
- 实现思路(需要理解的请结合代码来看)
- 代码:
- 成果展示
- 参考博客
仅供参考!!!
环境相关
Django (版本不限,当然不同的版本有不同的后端代码写法。本文环境为Django 3.1)
echarts (前端的画图框架,导入JS包即可) 点击网址可以找到模板 网址
JQuery (用于Ajax请求 导入JS包即可 在文中会有JS包地址)
实现思路(需要理解的请结合代码来看)
- 后端方面主要涉及到了ajax,其实就是前端对后端请求一个特定的地址,后端收到请求后,将数据整理并打包成json格式向前端发送,有点类似于在写API接口。
- 前端方面。主要有两个点:echarts 和Ajax 。
- echarts 中可以看到,生成的模板里面有2个data项,用于储存数据信息制作表格。 (不同的图表有不同的数据点,本文只有2个data项,生成折线图)
- Ajax 用于向后端发送请求。
- 在编写过程中,先将echarts 表的数据项清空(data : [])。 后续通过ajax请求向后端请求数据包,并提取对应的数据加入到echarts 表的数据项中。
代码: urls.py
re_path('ajax_line/', views.ajax_line, name='ajax_line'),
ajax请求接口:
from django.db import modelsfrom datetime import datetime# Create your models here.class Shop(models.Model):Name = models.CharField(max_length=50, verbose_name='名称')Barcode = models.CharField(max_length=50, verbose_name='条形码' ,default ='')Money = models.IntegerField(default=0, verbose_name='单价')number = models.IntegerField(default=0, verbose_name='库存')Other = models.CharField(max_length=100, verbose_name='备注' ,default='无')objects = models.Manager()def __str__(self):return self.Nameclass Meta:verbose_name = '商品'verbose_name_plural = verbose_nameclass ShopOrders(models.Model):Produce = models.ManyToManyField(Shop, verbose_name='产品清单', blank=True)Money = models.IntegerField(default=0, verbose_name='合计')add_time = models.DateTimeField(default=datetime.now, verbose_name='时间')Other = models.CharField(max_length=100, verbose_name='备注' , default='无')Owner =models.CharField(max_length=50, verbose_name='销售人员',default ='')FRESHMAN = 'FR'SOPHOMORE = 'SO'JUNIOR = 'JR'YEAR_IN_SCHOOL_CHOICES = ((FRESHMAN, '微信'),(SOPHOMORE, '现金'),(JUNIOR, '支付宝'),)Type = models.CharField(max_length=2,choices=YEAR_IN_SCHOOL_CHOICES,default=FRESHMAN,)objects = models.Manager()def __str__(self):return self.Ownerclass Meta:verbose_name = '商品订单'verbose_name_plural = verbose_name
models
from django.db import modelsfrom datetime import datetime# Create your models here.class Shop(models.Model):Name = models.CharField(max_length=50, verbose_name='名称')Barcode = models.CharField(max_length=50, verbose_name='条形码' ,default ='')Money = models.IntegerField(default=0, verbose_name='单价')number = models.IntegerField(default=0, verbose_name='库存')Other = models.CharField(max_length=100, verbose_name='备注' ,default='无')objects = models.Manager()def __str__(self):return self.Nameclass Meta:verbose_name = '商品'verbose_name_plural = verbose_nameclass ShopOrders(models.Model):Produce = models.ManyToManyField(Shop, verbose_name='产品清单', blank=True)Money = models.IntegerField(default=0, verbose_name='合计')add_time = models.DateTimeField(default=datetime.now, verbose_name='时间')Other = models.CharField(max_length=100, verbose_name='备注' , default='无')Owner =models.CharField(max_length=50, verbose_name='销售人员',default ='')FRESHMAN = 'FR'SOPHOMORE = 'SO'JUNIOR = 'JR'YEAR_IN_SCHOOL_CHOICES = ((FRESHMAN, '微信'),(SOPHOMORE, '现金'),(JUNIOR, '支付宝'),)Type = models.CharField(max_length=2,choices=YEAR_IN_SCHOOL_CHOICES,default=FRESHMAN,)objects = models.Manager()def __str__(self):return self.Ownerclass Meta:verbose_name = '商品订单'verbose_name_plural = verbose_name
【Django与图表的数据交互的实现】前端
月度销售情况>
成果展示
文章图片
参考博客 echarts动态获取Django数据
到此这篇关于Django与图表的数据交互的实现的文章就介绍到这了,更多相关Django 图表数据交互内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- echarts动态获取Django数据的实现示例
- “全民正义”时代的谴责与加害
- 分布式|springcloud学习 feign与nacos的使用
- MySQL|MySQL主从复制原理与实操
- 那些年,那些路
- JUC源码学习笔记4——原子类,CAS,Volatile内存屏障,缓存伪共享与UnSafe相关方法
- 设计(商业利益与用户体验之间的羁绊-黄旭昇——#阿里巴巴2017RED体验设计峰会#|设计:商业利益与用户体验之间的羁绊-黄旭昇——#阿里巴巴2017RED体验设
- 水形物语与静水无痕
- 陈沫与陈墨的故事
- linux防护与群集|搭建Zabbix监控平台