基于Django+Mysql+Echarts的可视化大屏开发

这篇具有很好参考价值的文章主要介绍了基于Django+Mysql+Echarts的可视化大屏开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 Big-screen项目说明

课程实验作业,临时赶出来的一个可视化大屏,后端是Django实现的web框架+Mysql数据库;前端(HTML+CSS+JS)三剑客,图表控件Echarts;本人很菜,,,做的比较潦草,还请多多包涵!
github项目地址:https://github.com/goldikfish/Bigscreen.git
运行效果如图
基于Django+Mysql+Echarts的可视化大屏开发

2 数据来源及处理

数据源自国家数据统计局 ,将数据保存为csv文件,导入MySQL。
预先设计好数据库中的表字段,csv文件只保留需要的数据(如图 把csv文件前三行删掉),在Mysql workbench里右击表,选择Table Data Import Wizard导入csv文件。
基于Django+Mysql+Echarts的可视化大屏开发
基于Django+Mysql+Echarts的可视化大屏开发

3 Django框架

3.1 项目、应用的创建及运行

从命令行cd到您要存储代码的目录,然后运行以下命令:

$ 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)

3.2 连接数据库

在myweb/settings.py文件中,通过DATABASES项进行数据库设置,默认是使用SQLite,我用的是MySQL,修改一下配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydemo',#数据库的名字,提前在mysql创建
        'USER': 'root',
        'PASSWORD': '', #这里填上你的密码
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

3.3 模板层

模板包含所需HTML 输出的静态部分,以及一些特殊的语法,描述如何将动态内容插入。在项目的根目录下创建一个templates目录,配置:

# 项目目录下的settings.py配置文件添加TEMPLATES中的DIRS配置
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',
                ],
            },
        },
    ]

3.4 其他核心功能

项目中会用到CSS、图片、js等静态文件,在项目目录下新建一个名为static的文件夹,用于存放以上文件,需要在settings 文件中定义静态内容

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]## 标题

Django虽然上手快,但功能、框架内容还是比较多的,如果你还不太了解,建议先熟悉一下框架(不要心急哦,一步一步慢慢来)

4 核心功能代码分析

4.1 统计信息展示及管理

a. 信息展示

大屏右下角的图表,展示了各年份-月份的失业率调查情况。大屏右上角是使用Echarts做的一个饼图。如果你只想做一个无后端的前端页面,可以直接写静态数据,图表的js代码在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>

b. 信息后台管理

右下角的图表,有一个橙色的文字加载更多,点击这个,会跳转到信息统计管理的页面
基于Django+Mysql+Echarts的可视化大屏开发
以上数据是从数据库获取的,刚才我们已经连接了数据库,现在需要将数据库中具体的表映射到模型上,在models.py中定义模型类,要求继承自models.Model

from django.db import models

# Create your models here.
class UPR(models.Model):
    '''自定义表对应的Model类'''
    #定义属性:默认主键自增id字段可不写
    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"

之后就可以开始写每个操作相应的函数了
基于Django+Mysql+Echarts的可视化大屏开发
写好后完成路由配置
基于Django+Mysql+Echarts的可视化大屏开发
前端通过路由反向解析,做出响应
基于Django+Mysql+Echarts的可视化大屏开发

4.2 Ajax异步请求

ajax 是一种浏览器通过 js 异步发起请求, 局部更新页面的技术。通过后台与服务器进行少量数据交换,ajax可以使网页实现异步更新。

在说明Ajax技术之前,先串一下大致流程,明确ajax写在哪?干了些什么?

  • 前端页面分区
    big-screen划分了四个模块,在前端页面html文件中,为每个模块划分区域,放在div标签里
    基于Django+Mysql+Echarts的可视化大屏开发

  • 初始化echarts实例
    避免一大串代码出现在div里,我们把初始化实例的工作写在js里,注意id要对应上。
    基于Django+Mysql+Echarts的可视化大屏开发
    接着把js文件放到head标签里,这里我加了版本号version(因为,有时候出现修改项目js文件浏览器不能及时更新的情况,这是因为浏览器默认是有缓存的,会影响我们的调试工作,通过设置和改变版本号,浏览器就会重新下载新的js文件)

<script language="javascript" src="static/js/myec.js?version=1.0.2"></script>
  • 使用Ajax传递数据
    传递的数据是用于Echarts实例的,所以把ajax传递数据的工作写在同一个js文件里。使用get()方法请求数据,先简单看一下语法

    $.get()函数语法
    $.get(url,[data],[callback])
    url:(string)‘请求的URL地址’请输入自己需要的地址
    data:(object)请求资源期间要携带的参数
    callback:(function)请求成功时的回调函数
    

    为此我们需要定义一个用于请求的URL地址,并能够返回数据。在视图层编写getData(),并配置路由即可
    基于Django+Mysql+Echarts的可视化大屏开发基于Django+Mysql+Echarts的可视化大屏开发

    这时候,就可以通过ajax异步发送请求了,此外还通过setTimeOut()设置了刷新时间。基于Django+Mysql+Echarts的可视化大屏开发
    big-screen左上角模块也是通过ajax技术实现的前后端交互,操作大差不差,就不多赘述了,上个动图看看效果
    基于Django+Mysql+Echarts的可视化大屏开发

5 总结

项目没有花太多时间(临时的作业),用的技术都比较简单,整体效果也略显简陋了。之后做大屏,可以考虑用华为云的DLV或者Astro轻应用(低代码),有很多现成的组件。
基于Django+Mysql+Echarts的可视化大屏开发
做数据可视化的本意是呈现数据的价值,后续深入学习,要对数据做好处理和分析,借助数理统计的知识,选用合理的图表进行可视化;再是技术层面的优化,比如前端采用vue框架,数据分布式存储等等,让项目更具现实意义。

文章内容只涉及比较关键的技术,具体代码见GitHub,最后,总结一下具体实现方案:

  1. 确定数据来源和数据格式。您可以从公开的数据接口或自行采集数据,将数据存储到MySQL数据库中,格式可以选择适合echarts组件的格式,如JSON格式。

  2. 在Django项目中创建一个应用,并定义模型类,用于操作MySQL数据库中的数据。

  3. 创建视图函数,用于接收前端请求,从数据库中获取数据,并返回JSON格式的数据给前端。

  4. 在前端页面中引入echarts组件,创建图表,读取后端返回的JSON格式数据,更新图表数据。

  5. 实现前后端异步交互,使用Ajax技术,发送请求给后端,获取数据,并更新前端页面。

  6. 在前端页面中使用JavaScript语言处理DOM操作,实现动态页面效果。

这是一个简单的实现方案,具体实现过程中可能还需要做一些细节处理。希望对您有所帮助。文章来源地址https://www.toymoban.com/news/detail-501825.html

到了这里,关于基于Django+Mysql+Echarts的可视化大屏开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Echarts构建大数据招聘岗位数据可视化大屏

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 1.项目背景 2.项目简介 3.项目流程 3.1整体布局 3.2左边布局 3.3中间布局  3.4右边布局  

    2024年02月03日
    浏览(55)
  • 【数据可视化】基于Python和Echarts的中国经济发展与人口变化可视化大屏

    1.题目要求 本次课程设计要求使用Python和ECharts实现数据可视化大屏。要求每个人的数据集不同,用ECharts制作Dashboard(总共至少4图),要求输入查询项(地点和时间)可查询数据,查询的数据的地理位置展示在地图上;绘制一个带时间轴的动态图,展示不同时间的数据;根据

    2024年02月16日
    浏览(46)
  • 基于Echarts构建停车场数据可视化大屏(文末送书)

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 1.项目背景 2.项目简介 3.项目流程 3.1整体布局 3.2左边布局 3.3中间布局  3.4右边布局  

    2024年02月08日
    浏览(90)
  • 基于HTML+CSS+Echarts大屏数据可视化集合共99套

    基于HTML/CSS/Echarts的会议展览、业务监控、风险预警、数据分析展示等多种展示需求可视化集合。 Java+Swing实现学生选课管理系统 Java+Swing实现学校教务管理系统 Java+Swing+sqlserver学生成绩管理系统 Java+Swing用户信息管理系统 Java+Swing实现的五子棋游戏 基于JavaSwing 银行管理系统

    2024年02月12日
    浏览(44)
  • django基于Python的房价预测系统+爬虫+大屏可视化分析

    欢迎大家点赞、收藏、关注、评论   房价是一个国家经济水平的重要体现,也是反映居民生活质量和水平的最直接的指标。目前我国住房制度以租售并举形式出现,房屋所有权人通过出售、出租房屋获得租金收入。但是由于房价波动较大,不能及时反映房价变化趋势,需要

    2024年02月08日
    浏览(42)
  • 基于Echarts+Vue3的低代码可视化数据大屏拖拽设计器 vue拖拽设计大屏

    本产品是一款基于Vue3开发的可视化数据大屏拖拽设计器。提供一种简单易用的拖拽式数据可视化大屏设计方案,可帮助用户快速创建和定制自己的数据大屏,通过拖拽组件、调整布局和设置属性,实现数据展示的自由组合和个性化定制。 可视化编辑:通过拖拽组件、调整布

    2024年02月03日
    浏览(61)
  • Echarts实现可视化大屏

    手把手带你做出一个可视化大屏,轻松完成期末大作业。 关注公众号” Python爬虫与数据分析 “回复“ 可视化大屏 ”获取代码及数据 涉及到的技术:Echarts、HTML、css、JavaScript Echarts官网: https://echarts.apache.org/handbook/zh/concepts/axis/ 目录 1、echarts同时展示多幅图 2、使用css优化

    2024年02月09日
    浏览(97)
  • python岗位数据可视化大屏全屏系统设计与实现(基于python的django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(47)
  • 基于python重庆招聘信息数据可视化分析全屏大屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(48)
  • 基于python重庆二手房数据可视化分析全屏大屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月05日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包