iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Django与图表的数据交互的实现
  • 561
分享到

Django与图表的数据交互的实现

2024-04-02 19:04:59 561人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录环境相关实现思路(需要理解的请结合代码来看)代码:成果展示参考博客在Django开发过程中,遇到了需要图表进行数据可视化的需要。因此查询了相关文档,并记录下如何实现与图表的数据交

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 models
from 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.Name
    class Meta:
        verbose_name = '商品'
        verbose_name_plural = verbose_name

class 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.Owner
    class Meta:
        verbose_name = '商品订单'
        verbose_name_plural = verbose_name

models

  from django.db import models
from 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.Name
    class Meta:
        verbose_name = '商品'
        verbose_name_plural = verbose_name

class 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.Owner
    class Meta:
        verbose_name = '商品订单'
        verbose_name_plural = verbose_name

前端

<!--
   THIS EXAMPLE WAS DOWNLOADED FROM https://echarts.apache.org/examples/zh/editor.html?c=line-simple
-->
<!DOCTYPE html>
<html lang="zh-CN" style="height: 100%">
<head>
  <meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0">

<h1 style="Text-align:center"> 月度销售情况</h1>>
  <div id="container" style="height: 100%"></div>


 <script type="text/javascript" src="Https://fastly.jsdelivr.net/npm/echarts@5.3.3/dist/echarts.min.js"></script>
 <script type="text/javascript" charset="utf8" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

  <script type="text/javascript">
    var dom = document.getElementById('container');
    var myChart = echarts.init(dom, null, {
      renderer: 'canvas',
      useDirtyRect: false
    });
    var app = {};
    
    var option;

    option = {
  xAxis: {
    type: 'category',
    data: []
  },
  yAxis: {
    type: 'value'
  },
  series: [
    {
      data: [],
      type: 'line'
    }
  ]
};

    if (option && typeof option === 'object') {
      myChart.setOption(option);
    }
    window.addEventListener('resize', myChart.resize);

    myChart.showLoading();
    var names = [];
    var brower = [];
    $.ajax({ // ajax的方式动态获取后端代码
        type: 'get',
        url: '/index/ajax_line/',
        dataType: 'json',
        success: function (result) {
                $.each(result.data, function (index, item) {
                names.push(item.name);
                brower.push({
                    value: item.count,
                    name: item.name
                });
            });
            myChart.hideLoading();
            myChart.setOption({
                xAxis: {
                    data: names
                },
                series: [{
                    data: brower
                }]
            });
        },
        error: function (errORMsg) {
            alert('errormsg');
            myChart.hideLoading();
        }
    });

  </script>

</body>
</html>

成果展示

在这里插入图片描述

参考博客

echarts动态获取Django数据

到此这篇关于Django与图表的数据交互的实现的文章就介绍到这了,更多相关Django 图表数据交互内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Django与图表的数据交互的实现

本文链接: https://www.lsjlt.com/news/119898.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Django与图表的数据交互的实现
    目录环境相关实现思路(需要理解的请结合代码来看)代码:成果展示参考博客在Django开发过程中,遇到了需要图表进行数据可视化的需要。因此查询了相关文档,并记录下如何实现与图表的数据交...
    99+
    2022-11-11
  • Django与数据库交互的实现
    目录1 如何创建项目数据库2 进行数据库与django的交互3 添加数据4 查找数据4 更新数据1 如何创建项目数据库 首先,在虚拟机数据库中建立一个与项目同名的数据库,方便管理。 ...
    99+
    2022-11-12
  • 如何实现Django与数据库进行交互
    这篇文章主要介绍如何实现Django与数据库进行交互,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1 如何创建项目数据库首先,在虚拟机数据库中建立一个与项目同名的数据库,方便管理。(django_test) ...
    99+
    2023-06-15
  • Django在视图中使用表单并和数据库进行数据交互的实现
    目录写在前面目结构及代码项目结构路由设置数据库配置定义模型定义表单修改模板视图函数记录感受写在前面 博主近期有时间的话,一直在抽空看Django相关的项目,苦于没有web开发基础,对...
    99+
    2022-11-11
  • QT与javascript交互数据的实现
    一、数据从QT流向JS 1、QT调用JS的函数,JS通过形参获得QT的值 2、JS调用QT的函数,QT函数的返回值进入JS 二、数据从JS流向QT 1、JS调用QT的函数,QT通过形...
    99+
    2022-11-12
  • Python与数据库的交互怎么实现
    本篇内容介绍了“Python与数据库的交互怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MongoDB安装模块pip install...
    99+
    2023-06-22
  • Java API 和 Django 如何实现实时数据交互?
    在当今互联网时代,数据交互已经成为了各种应用的基础。Java 和 Django 是两个非常流行的编程语言和框架,它们都具有强大的数据处理能力,那么如何利用 Java API 和 Django 实现实时数据交互呢? Java API 是一种...
    99+
    2023-07-03
    api 实时 django
  • QT与javascript交互数据如何实现
    这篇文章给大家分享的是有关QT与javascript交互数据如何实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、数据从QT流向JS1、QT调用JS的函数,JS通过形参获得QT的值2、JS调用QT的函数,QT...
    99+
    2023-06-15
  • golang与pgsql交互的实现
    目录1、目的2、代码架构3、代码展示1、目的 通过读取配置文件获取pgsql用户名和密码及数据库和数据表,从而读取所需字段值。 2、代码架构 config/config.go:读取...
    99+
    2023-03-19
    golang pgsql交互 golang pgsql
  • 如何在 Django 和 Go 函数之间实现平滑的数据交互?
    Django 和 Go 是两个非常流行的 Web 开发框架,它们分别使用 Python 和 Go 作为编程语言。在实际开发中,我们可能需要在 Django 和 Go 之间进行数据交互,比如 Django 提供了一些数据接口,我们需要在 G...
    99+
    2023-07-09
    函数 linux django
  • Android webview与js的数据交互
    项目要用到Webview和js交互,查了查以前的项目感觉还是有必要整理下的。 简单描述下项目中用到的地方,比如说在web页需要用到登录的地方点击登录跳转到APP原生登录界面...
    99+
    2022-06-06
    数据 webview js Android
  • python与xml数据的交互详解
    目录一 什么是XML二 XML语法规则1. xml语法规则2. xml与html的区别三 python与xml的交互1. 获取标签对内的数据2. 获取标签属性值一 什么是XML py...
    99+
    2022-11-11
  • python与json数据的交互详情
    目录一 什么是json二 json语法格式三 python与json的交互1. json.loads()2. json.load()3. json.dumps()4. json.du...
    99+
    2022-11-11
  • Flask框架之数据交互的实现
    目录1 使用Flask处理表单1.1 使用Flask处理通用表单1.2 使用Flask-WTF处理表单2 使用Flask上传文件3 Cookie的使用3.1 Cookie的基本概念3...
    99+
    2022-11-11
  • python实现与Oracle数据库交互操作示例
    目录1、安装准备2、instantclient的安装说明3、instantclient安装步骤4、还有几个需要注意的地方1)设置NLS_LANG环境变量:解决中文乱码2)关于TNS_...
    99+
    2022-11-12
  • pythontkinter与Mysql数据库交互实现账号登陆
     本例已经实现的数据库password,数据库的表以及表结构如下: 表中已经插入的信息: 实现思路无非是用户完成账户密码输入并点击登录按钮后,程序先进行数据库连接,然后...
    99+
    2022-11-12
  • Android实现与Apache Tomcat服务器数据交互(MySql数据库)
    需求:Android客户端连接服务器端MySQL数据库中的内容 环境部署 服务器:apache-tomcat-8.5.9 语言版本:Java 1.8.0_101 编译环境:Ec...
    99+
    2022-06-06
    Tomcat 数据 Apache mysql数据库 Mysql Android
  • QML与C++交互的实现步骤
    目录前言第一个例子:QML中创建C++对象第二个例子:C++中加载QML对象参考前言 文档如是说,QML旨在通过C ++代码轻松扩展。Qt QML模块中的类使QML对象能够从C ++...
    99+
    2022-11-13
  • Python实现MySql数据库交互的示例
    目录一、使用mysql进行持久化存储二、安装MySql数据库和python库PyMySQL三、使用pymysql链接mysql数据库四、创建表五、插入数据六、后记一、使用MySql进行持久化存储 在任何应用中,都需要持久...
    99+
    2023-01-06
    PythonMySql数据库交互 PythonMySql交互
  • 使用springMVC如何实现与json数据进行交互
    使用springMVC如何实现与json数据进行交互?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前台代码:function channel(){ //先获取选中的值 ...
    99+
    2023-05-31
    springmvc json
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作