flask mysql Echart 实现数据库数据图表展示

news/2024/11/17 20:48:53/

实现步骤

  • 第一步:准备数据库
  • 第二步:准备Echart
  • 第三步:绑定数据库信息和图表
  • ⚠️需要注意的几个地方

第一步:准备数据库

这部分内容查看我的上一篇内容:
python flask p5.js mysql 实现数据库查询并网页显示数据
通过前端输入相关测试数据:
请添加图片描述

请添加图片描述
数据库中查看信息:
请添加图片描述

第二步:准备Echart

下载链接:(需下载一个js文件)
https://github.com/apache/echarts/blob/5.4.2/dist/echarts.min.js
点进去之后右击Raw,选择链接另存为请添加图片描述
请添加图片描述
放在自己项目的js文件夹下面
然后去官网找到你想要下载的示例
https://echarts.apache.org/examples/zh/index.html#chart-type-line

请添加图片描述
我们这边以基础平滑折线图为例子点进去然后再点下载示例
请添加图片描述
请添加图片描述
下载好是一个html文件
你可以直接用这个文件拖进去自己的文件夹或者新建一个复制进去也是可以的
请添加图片描述
示例是用下面这种方式引入echarts.min.js的

 <script type="text/javascript" src="https://fastly.jsdelivr.net/npm/echarts@5.4.2/dist/echarts.min.js"></script>

如果想用我们刚刚放在本地的就用下面这条语句

<script  src="{{ url_for('static',filename = 'js/echarts.min.js') }}"></script>

请添加图片描述
我们看我们复制过来的代码
请添加图片描述

xAxis 里面的data表示x轴的数据是什么
series 里面的data是你变化的数据
y轴的数据范围会根据你变化的数据自己定好上下界的

我们将来展示修改的就是 这两个部分
运行一下先看看报不报错再进行下一步哦
请添加图片描述

第三步:绑定数据库信息和图表

后端方面:
在蓝图下面新建一个py文件,蓝图的新建方法就是右击项目新建python Package,命名就是 blueprint
(ps:如果项目不大写在app.py中也可)
代码就是:

from flask import render_template
from models import User@app.route('/chart')
def chart():items = User.query.all()print(items)return render_template('chart.html', items=items)

请添加图片描述
蓝图下新建chart.py

from flask import Blueprint, render_template
from models import Userbp = Blueprint("chart", __name__, url_prefix="/")@bp.route('/chart')
def chart():items = User.query.all()print(items)return render_template('chart.html', items=items)

代码的目的就是查到数据库所有的数据然后转发给chart.html,这个chart.html就是咋们刚刚复制进来的那个html文件

我们现在数据库中的信息是:
请添加图片描述
然后我们想让变化的数据是age,横坐标展示我们的姓名
这个时候我们去改html文件
请添加图片描述
只需要改这两个data,其他都不需要动
我们那会不是将items数据库的记录传到了这个html文件,我们现在就要用这个items
请添加图片描述
改动就是以循环的方式将记录的一个对象输出
最后我们访问一下http://127.0.0.1:5000/chart
请添加图片描述
然后就得到了我们想要的效果
附上chart .html文件代码:

<!--此示例下载自 https://echarts.apache.org/examples/zh/editor.html?c=line-smooth
-->
<!DOCTYPE html>
<html lang="zh-CN" style="height: 100%">
<head><meta charset="utf-8">
</head>
<body style="height: 100%; margin: 0"><div id="container" style="height: 100%"></div><script  src="{{ url_for('static',filename = 'js/echarts.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:[{% for item in items %}"{{ item.username}}",{% endfor %}]},yAxis: {type: 'value'},series: [{data: [{% for item in items %}"{{ item.age}}",{% endfor %}],type: 'line',smooth: true}]};if (option && typeof option === 'object') {myChart.setOption(option);}window.addEventListener('resize', myChart.resize);</script></body>
</html>

⚠️需要注意的几个地方

1、注意自己在@bp.route('/chart')配置的路径是否正确
2、注意自己循环里面item.age 和数据库字段是否一样
请添加图片描述
3、检查自己后端是否返回数据库的所有数据
请添加图片描述

请添加图片描述
提示框有数据才可以,如果数据库有东西但打印出来[ ] 再回去检查你的数据库连接和后端是否有拼写错误


http://www.ppmy.cn/news/89036.html

相关文章

目前国内有哪些开源的非 SaaS 团队协作平台、项目管理工具呢?

以下是一些常用的开源团队协作平台和项目管理工具&#xff1a; 1.Gitea Gitea 是一个轻量级的 Git 服务&#xff0c;它提供了一个基于 Web 的界面&#xff0c;以方便地管理 Git 存储库。Gitea 也是一个自托管的 Git 服务&#xff0c;可以轻松地在本地或云环境中部署。 2.GitL…

手摸手教你Vite+Vue3项目初始化及开源部署到GItee

项目初始化 本片文章主要记录项目的环境&#xff0c;项目搭建。 在开始本次学习中&#xff0c;鉴于你有前端三件套和vue的知识基础。 文档创建于2023年5月20日&#xff0c;大家都去过情人节了~我在肝代码&#xff01; 环境的搭建 node版本使用18.16.0。 目前&#xff08;202…

经典组件知识(zookeeper,kafka,ngix)

关于zookeeper的具体介绍 优化的点可以在于zookeeper吗&#xff1f; 如何安装使用&#xff1f; #include <zookeeper/zookeeper.h> 1、先配置java环境JDK&#xff0c;因为需要用java编译&#xff1b; 2、下载zk源码&#xff0c;解压&#xff1b; 3、重命名配置文件zoo_sa…

《汇编语言》- 读书笔记 - 第3章-寄存器(内存访问):mov、add、sub、push、pop

《汇编语言》- 读书笔记 - 第3章-寄存器&#xff08;内存访问&#xff09; 3.1 内存中字的存储问题 3.1 3.2 DS 和 [address]问题 3.2 3.3 字的传送问题 3.3问题 3.4 3.4 mov、add、sub 指令3.5 数据段问题 3.53.1~3.5 小结检测点 3.1 3.6 栈3.7 CPU 提供的栈机制问题 3.6 3.8 …

深度学习语义分割篇——FCN源码解析篇

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;往期回顾&#xff1a;深度学习语义分割篇——FCN原理详解篇 &#x1f34a;近期目标&#xff1a;写好专栏的每一篇文章 &#x1f34a;支持小苏&#xff1a;点赞&#x1f44d;&…

Transformer仅有自注意力还不够?微软联合巴斯大学提出频域混合注意力SpectFormer

本文介绍一篇来自英国巴斯大学&#xff08;University of Bath&#xff09;与微软合作完成的工作&#xff0c;研究者从频率域角度入手探究视觉Transformer结构中的频域注意力和多头注意力在视觉任务中各自扮演的作用。 论文链接&#xff1a; https://arxiv.org/abs/2304.06446 …

关于composer、phpmd和phpcs于windows中的安装与使用方法

Composer 项目地址 https://getcomposer.org 中文 http://docs.phpcomposer.com/ Composer是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库&#xff0c;它会在你的项目中为你安装他们。 一、安装Composer 官网有详细介绍安装方法&#xff0c;包括windows和linux…

国内半导体分立器件逐步向高端应用市场推进,未来可期

分立器件行业概况 半导体分立器件是半导体产业的基础及核心领域之一&#xff0c;其具有应用领域广阔、高成品率、特殊器件不可替代等特性。 从市场需求看&#xff0c;分立器件受益于物联网、可穿戴设备、智能家居、健康护理、安防电子、新能源汽车、智能电网、5G通信射频等市…