基于Django+MySQL+ECharts的可视化大屏开发实战
创作时间:
作者:
@小白创作中心
基于Django+MySQL+ECharts的可视化大屏开发实战
引用
CSDN
1.
https://blog.csdn.net/m0_63190901/article/details/130285529
Big-screen项目说明
这是一个基于Django、MySQL和ECharts的可视化大屏项目。后端采用Django框架,前端使用HTML、CSS和JavaScript,图表控件使用ECharts。项目运行效果如下:
数据来源及处理
数据来源于国家统计局,保存为CSV文件并导入MySQL数据库。在导入前需要对CSV文件进行预处理,删除不必要的行,并在MySQL Workbench中使用Table Data Import Wizard导入。
Django框架
项目、应用的创建及运行
从命令行创建Django项目和应用:
$ django-admin startproject myweb
$ python manage.py startapp myapp
创建后,项目结构如下:
[root@localhost demo]# tree myweb/
myweb/
├── manage.py
├── myweb
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── myapp
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│ └── __init__.py
├── models.py
├── tests.py
└── views.py
运行开发服务器:
$ python manage.py runserver 端口号(默认8000)
连接数据库
在myweb/settings.py
中配置数据库连接:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydemo', # 数据库的名字,提前在mysql创建
'USER': 'root',
'PASSWORD': '', # 这里填上你的密码
'HOST': 'localhost',
'PORT': '3306',
}
}
模板层
在项目根目录下创建templates
目录,并在settings.py
中配置:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
其他核心功能
创建static
目录存放CSS、图片、JS等静态文件,并在settings.py
中配置:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
核心功能代码分析
统计信息展示及管理
信息展示
大屏右下角的图表展示了各年份-月份的失业率调查情况,右上角使用ECharts绘制饼图。如果只需要前端页面,可以直接使用静态数据:
<body>
<script type="text/javascript">
var myChart = echarts.init(document.getElementById('main'));
var option;
option = {
tooltip: {
trigger: 'item'
},
legend: {
top: '0%',
left: 'center'
},
series: [
{
name: 'Access From',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
itemStyle: {
borderRadius: 15,
borderColor: '#fff',
borderWidth: 2
},
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: 20,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 5.6, name: '全国城镇调查失业率(%)', itemStyle: { color: '#4682B4' } },
{ value: 5.4, name: '全国本地户籍人口城镇调查失业率(%)', itemStyle: { color: '#F4A460' } },
{ value: 18.1, name: '全国16-24岁人口城镇调查失业率(%)', itemStyle: { color: '#FF8C00' } },
{ value: 4.8, name: '全国25-59岁人口城镇调查失业率(%)', itemStyle: { color: '#FFF5EE' } },
{ value: 5.7, name: '31个大城市城镇调查失业率(%)', itemStyle: { color: '#AFEEEE' } }
]
}
]
};
myChart.setOption(option);
</script>
</body>
信息后台管理
右下角图表的"加载更多"功能会跳转到信息统计管理页面。数据从数据库获取,需要在models.py
中定义模型类:
from django.db import models
class UPR(models.Model):
'''自定义表对应的Model类'''
id = models.AutoField(primary_key=True)
time = models.CharField(max_length=45)
uprate_1 = models.CharField(max_length=45)
uprate_2 = models.CharField(max_length=45)
uprate_3 = models.CharField(max_length=45)
def __str__(self):
return "%d:%s:%s:%s:%s" % (self.id, self.time, self.uprate_1, self.uprate_2, self.uprate_3)
class Meta:
db_table = "unemployment"
Ajax异步请求
Ajax是一种通过JavaScript异步发起请求、局部更新页面的技术。具体流程包括:
- 前端页面分区:在HTML中为每个模块划分区域
- 初始化ECharts实例:将初始化工作写在JS文件中
- 使用Ajax传递数据:通过
$.get()
方法请求数据
示例代码:
<script language="javascript" src="static/js/myec.js?version=1.0.2"></script>
$.get(url, [data], [callback])
在视图层编写getData()
函数并配置路由,通过Ajax异步发送请求,并使用setTimeOut()
设置刷新时间。
总结
项目地址:https://github.com/goldikfish/Bigscreen.git
这是一个临时作业项目,用的技术都比较简单,整体效果略显简陋。后续可以考虑使用华为云DLV或Astro轻应用等低代码工具,让项目更具现实意义。
实现方案总结:
- 确定数据来源和格式,存储到MySQL数据库
- 在Django项目中创建应用并定义模型类
- 创建视图函数处理前端请求,返回JSON格式数据
- 前端使用ECharts组件读取数据并更新图表
- 使用Ajax实现前后端异步交互
- 使用JavaScript处理DOM操作实现动态效果
热门推荐
试管婴儿心理调适攻略:如何应对压力与焦虑
鞍山废矿石交易:法律风险知多少?
西城法院发布典型案例:公共场所安全保障义务这样界定
意外伤害保险三大保障与选购要点,一文全解析
在超市摔倒可向多部门投诉,民法典保障消费者权益
超市摔伤赔偿标准:医疗费、误工费等七项费用详解
黄连阿胶汤:失眠治疗的中医智慧
三七皂苷R1:心血管疾病治疗新突破
三七种植技巧,让你远离病虫害
三七养生新潮流:科学食用方法全攻略
济南商河艺考文化课:数学解题秘籍大揭秘
高考数学解题秘籍:掌握五大神技
深入调研、精准建言,普陀区政协为业委会制度化建设“诊脉开方”
炖鸡秘诀:浸泡腌制加火候控制,3个关键步骤详解
4种香料炖鸡块,去腥增香又解腻,新手也能做出美味
烘焙妈妈&浮云吹似雪教你做水晶面饺子
左侧偏头痛:六大病因、两大治疗方案及日常保养指南
一文掌握头痛的分类诊断:从急性到慢性
手麻全攻略:从原因诊断到科学应对方案
12月的鱼该怎么钓?12月钓鱼的5个技巧
柳根鱼垂钓全攻略:从装备到技巧详解
冬钓柳根技巧
脚部健康,长寿的“秘密武器”
喝牛奶,让你的脚趾更健康
车顶行李架使用指南:安全装载与行驶全攻略
汽车维修自学指南:四大系统构造与故障处理
甜梦口服液:失眠患者的福音,但需遵医嘱服用
餐前一小时服用,反流性食管炎用药全攻略
每日20毫克,餐前服用:艾司奥美拉唑镁碳酸氢钠使用要点
邮票船票对明月,余光中李白共话乡愁