当前位置: 首页 > news >正文

大数据毕设选题 - flask疫情数据可视化系统(python)

文章目录

  • 1 前言
  • 1 课题背景
  • 2 数据库设计实现
  • 3 实现效果
  • 4 Flask框架
  • 5 爬虫
  • 6 Ajax技术
  • 7 Echarts

1 前言

🔥 Hi,大家好,这里是丹成学长的毕设系列文章!

🔥 对毕设有任何疑问都可以问学长哦!

这两年开始,各个学校对毕设的要求越来越高,难度也越来越大… 毕业设计耗费时间,耗费精力,甚至有些题目即使是专业的老师或者硕士生也需要很长时间,所以一旦发现问题,一定要提前准备,避免到后面措手不及,草草了事。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的新项目是

🚩 基于大数据的实时疫情数据可视化项目

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:4分
  • 工作量:4分
  • 创新点:3分

🧿 选题指导, 项目分享:

https://blog.csdn.net/Mr_DC_IT/article/details/126460477

1 课题背景

这两年大家最关心的便是疫情的进展情况了,每天睡前看一眼,睡醒盯一眼,恨不得实时关注着,而很多官方平台也用可视化的方式,实时更新着数据。通过图形图像的方式展示着疫情情况比密密麻麻的一堆表格数据看起来更能发现数据的规律,方便广大群众了解疫情信息也更有利于官方开展疫情防护工作。

2 数据库设计实现

本系统数据库使用集成型数据库MySQL,MySQL是一个关系型数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

mysql架构图
在这里插入图片描述

本项目相关表结构如下:
在这里插入图片描述

3 实现效果

主界面
疫情可视化系统开发主界面包括全国疫情热力图界面及相关确诊数量柱形图、增长趋势图等。
在这里插入图片描述
折线统计图
疫情统计折线图如图所示。从全国累计趋势和新增趋势可以看出,我国疫情情况现在比较稳定,能够得到有效控制。 折线图可以选择只显示一种数据,并为数据重新制作折线图, 便于更好分析疫情发展情
况,我国疑似人数趋势,隐藏其他数据。将鼠标移到相应线段可以展示是哪一天的数据,可以看到,一旦有疑似,可以很快确认是否被确诊,说明我国对新冠肺炎已经有有效措施进行排查,效果也很显著,侧面说明疫情得到控制。
在这里插入图片描述
柱状图
如图所示,根据中国除湖北外的城市确诊情况和全球各国确诊情况制作柱状统计图。 可以看出,在中国,香港确诊人数相较其他城市来说,需要加强防护与监管。在这里插入图片描述
相关代码

# 世界疫情地图
@app.route('/world')
def world():
    return render_template('world.html')


# 获取world数据,世界疫情地图
@app.route('/get_world')
def get_world():
    res = []
    global_dict = utils.get_world()
    for tup in global_dict:
        res.append({'name': tup, 'value': global_dict[tup]})
    # 获取中国累计确诊人数
    china_data = utils.get_c1_data()[0]
    res.append({'name': '中国', 'value': int(china_data)})
    return jsonify({'data': res, 'name': nameMap.namemap})

4 Flask框架

Flask是一个基于Werkzeug和Jinja2的轻量级Web应用程序框架。与其他同类型框架相比,Flask的灵活性、轻便性和安全性更高,而且容易上手,它可以与MVC模式很好地结合进行开发。Flask也有强大的定制性,开发者可以依据实际需要增加相应的功能,在实现丰富的功能和扩展的同时能够保证核心功能的简单。Flask丰富的插件库能够让用户实现网站定制的个性化,从而开发出功能强大的网站。

本项目在Flask开发后端时,前端请求会遇到跨域的问题,解决该问题有修改数据类型为jsonp,采用GET方法,或者在Flask端加上响应头等方式,在此使用安装Flask-CORS库的方式解决跨域问题。此外需要安装请求库axios。

框架图
在这里插入图片描述

相关代码:

#数据库连接
from flask import Flask
import pymysql

# SQLAlchemy:Python 下的一款 ORM 框架,建立在数据库 API 之上,使用关系对象映射进行数据库操作
# 把关系数据库的表结构映射到对象上,将对象转换成 SQL,然后使用数据 API 执行 SQL 并获取执行结果

from sqlalchemy import create_engine
import config

# 创建一个 flask 实例
manager = Flask(__name__)

# 数据库连接
db = pymysql.connect(host="localhost", user=config.username,password=config.password, db=config.db_name)
engine = create_engine('mysql+pymysql://root:123456@127.0.0.1:3306/38_food')

# 处理跨域请求
from flask_cors import CORS
from api import food
from model import manager
# 允许用户跨源发出 Cookie 或经过身份验证的请求
CORS(manager, supports_credentials=True)
manager.register_blueprint(food.food_info)

5 爬虫

网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。爬虫对某一站点访问,如果可以访问就下载其中的网页内容,并且通过爬虫解析模块解析得到的网页链接,把这些链接作为之后的抓取目标,并且在整个过程中完全不依赖用户,自动运行。若不能访问则根据爬虫预先设定的策略进行下一个 URL的访问。在整个过程中爬虫会自动进行异步处理数据请求,返回网页的抓取数据。在整个的爬虫运行之前,用户都可以自定义的添加代理,伪 装 请求头以便更好地获取网页数据。爬虫流程图如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-93SHGUvQ-1658921533487)(image-20220712143046445.png)]

6 Ajax技术

Ajax 是一种独立于 Web 服务器软件的浏览器技术。

Ajax使用 JavaScript 向服务器提出请求并处理响应而不阻塞的用户核心对象XMLHttpRequest。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据,即在不需要刷新页面的情况下,就可以产生局部刷新的效果。

前端将需要的参数转化为JSON字符串,再通过get/post方式向服务器发送一个请并将参数直接传递给后台,后台对前端请求做出反应,接收数据,将数据作为条件查询,但会j’son字符串格式的查询结果集给前端,前端接收到后台返回的数据进行条件判断并作出相应的页面展示。

$.ajax({
			    url: 'http://127.0.0.1:5000/updatePass',
				type: "POST",
				data:JSON.stringify(data.field),
				contentType: "application/json; charset=utf-8",
				dataType: "json",
				success: function(res) {
					if (res.code == 200) {
                        layer.msg(res.msg, {icon: 1});
                    } else {
                        layer.msg(res.msg, {icon: 2});
				    }
				}
			})

7 Echarts

ECharts(Enterprise Charts)是百度开源的数据可视化工具,底层依赖轻量级Canvas库ZRender。兼容了几乎全部常用浏览器的特点,使它可广泛用于PC客户端和手机客户端。ECharts能辅助开发者整合用户数据,创新性的完成个性化设置可视化图表。支持折线图(区域图)、柱状图(条状图)、散点图(气泡图)、K线图、饼图(环形图)等,通过导入 js 库在 Java Web 项目上运行。

🧿 选题指导, 项目分享:

https://blog.csdn.net/Mr_DC_IT/article/details/126460477

相关文章:

  • 记录第一次开源流计算框架Flink代码的贡献
  • 共码未来 | 助力实现事半功倍的前端开发体验
  • 客户端存储localStorage和sessionStorage以及Cookie
  • Python学习笔记:Jupyter Notebook快速入门案例:学习时间与成绩的关系
  • 嵌入式软件工程师面试题(三)
  • K8S搭建共享存储(以MySQL例)
  • 【C++】类和对象(中篇)(万字)
  • 虹科教您 | 虹科TSN配置软件RELY-TSN-Configurator基本操作指南
  • 【python基础】super是啥,你会用吗?
  • 反向传播和其他微分算法
  • 爆肝撸了个“羊了个羊”通关助手
  • Flutter快学快用17 打包发布:Flutter 应用,你离线上运营只差最后一步
  • 效果超强!基于Prompt Learning、检索思路实现文本分类,开源数据增强、可信增强技术
  • 第五次线上面试总结(2022.9.21 二面)
  • 多容器SSM整合
  • 网络传输文件的问题
  • ES6指北【2】—— 箭头函数
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • classpath对获取配置文件的影响
  • docker python 配置
  • Docker入门(二) - Dockerfile
  • input的行数自动增减
  • Java 多线程编程之:notify 和 wait 用法
  • Java 最常见的 200+ 面试题:面试必备
  • Java的Interrupt与线程中断
  • Leetcode 27 Remove Element
  • oldjun 检测网站的经验
  • Python_网络编程
  • python学习笔记 - ThreadLocal
  • SAP云平台里Global Account和Sub Account的关系
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Vue UI框架库开发介绍
  • 从伪并行的 Python 多线程说起
  • 构建工具 - 收藏集 - 掘金
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 回顾 Swift 多平台移植进度 #2
  • 精彩代码 vue.js
  • 聊聊flink的BlobWriter
  • 区块链将重新定义世界
  • 由插件封装引出的一丢丢思考
  • 在electron中实现跨域请求,无需更改服务器端设置
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • Spring Batch JSON 支持
  • 函数计算新功能-----支持C#函数
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • ###STL(标准模板库)
  • #13 yum、编译安装与sed命令的使用
  • #include到底该写在哪
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (Note)C++中的继承方式
  • (Ruby)Ubuntu12.04安装Rails环境
  • (TOJ2804)Even? Odd?