作者主页:IT研究室✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

一、前言

近年来,全球范围内发生了多次传染病疫情,其中新型冠状病毒肺炎(COVID-19)疫情的爆发,对全球人类健康和社会经济造成了严重影响。为了有效防控疫情的传播,开发一款新冠肺炎疫情实时监控可视化系统具有极其重要的现实意义和必要性。该系统将为政府、医疗机构和公众提供及时、准确的疫情信息和可视化数据,帮助人们更好地理解疫情发展趋势和防控措施的效果。

当前,虽然存在一些疫情监控平台,但它们往往存在以下问题:
数据更新不及时:无法获取最新的疫情数据,导致用户无法准确了解疫情的最新发展情况。
数据展示不直观:缺乏直观的可视化图表和图形界面,用户难以理解数据的变化和趋势。
功能不完善:缺乏必要的功能,如新闻浏览、留言交流等,无法满足用户的多元化需求。
系统稳定性差:由于系统设计缺陷或技术能力不足,导致系统经常崩溃或出现其他故障,影响用户的使用体验。

本研究旨在开发一款新冠肺炎疫情实时监控可视化系统,解决现有解决方案存在的问题,实现以下目标:
实时监控:能够实时获取并更新全国各地的疫情数据,使用户能够及时了解疫情的发展情况。
可视化展示:通过直观的图表和图形界面展示疫情数据,使用户能够更好地理解数据的变化和趋势。
多元化功能:除了基本的疫情数据展示功能外,还提供新闻浏览、留言交流等功能,满足用户的多元化需求。
高稳定性:采用先进的技术和设计理念,确保系统的稳定性和可靠性。

本研究的意义在于开发一款高效、实用、可靠的新冠肺炎疫情实时监控可视化系统,为政府、医疗机构和公众提供全面的疫情信息和服务。该系统将有助于提高人们对疫情的认知和理解,促进科学防控措施的实施,提高疫情防控效果和公共卫生管理水平。同时,该系统的成功开发也将为其他类似疫情监控系统的设计和开发提供有益的参考和借鉴。

二、开发环境

  • 开发语言:Python
  • 数据库:MySQL
  • 系统架构:B/S
  • 后端:Django
  • 前端:Vue

三、系统功能模块

  • 角色:用户、管理员
  • 功能:
    用户
    浏览疫情数据、浏览新闻、留言交流;
    管理员
    用户管理、疫情数据管理、爬取全国实时动态数据、留言交流管理、系统管理。

四、系统界面展示

  • 新冠肺炎疫情实时监控可视化系统-界面展示:
    新冠肺炎疫情实时监控可视化系统-疫情数据
    新冠肺炎疫情实时监控可视化系统-疫情新闻
    新冠肺炎疫情实时监控可视化系统-留言反馈
    新冠肺炎疫情实时监控可视化系统-数据可视化
    新冠肺炎疫情实时监控可视化系统-数据可视化
    新冠肺炎疫情实时监控可视化系统-疫情数据管理
    新冠肺炎疫情实时监控可视化系统-全国实时数据
    新冠肺炎疫情实时监控可视化系统-疫情数据实时动态爬取

五、代码参考

  • 新冠肺炎疫情实时监控可视化系统-代码参考:
 # 当日详细数据
    details = []
    update_time = data_all1["lastUpdateTime"]
    data_country = data_all1["areaTree"][0]
    data_province = data_country["children"]  # 中国各省
    for pro_infos in data_province:
        province = pro_infos["name"]  # 省名
        for city_infos in pro_infos["children"]:
            city = city_infos["name"]
            # 累计确珍人数
            confirm = city_infos["total"]["confirm"]
            # 现有确诊人数
            now_confime = city_infos["total"]["nowConfirm"]
            # 新增确诊人数
            confirm_add = city_infos["today"]["confirm"]
            # 新增无症状
            wzz_add = city_infos["today"]["wzz_add"]
            if wzz_add == '':
                wzz_add = 0
            else:
                wzz_add = int(wzz_add)
            # 累计治愈人数
            heal = city_infos["total"]["heal"]
            # 累计死亡人数
            dead = city_infos["total"]["dead"]
            details.append([update_time, province, city, confirm, now_confime, confirm_add,wzz_add, heal, dead])
    return history, details
 # 判断是否执行爬虫
    res = sql_query.exSpider()
    # event表不空
    if len(res) != 0:
        dateTup = time.strptime(str(res[0][0]), "%Y-%m-%d %H:%M:%S")
        date = time.strftime("%Y-%m-%d", dateTup)
        # 当前时间
        nowTimeTup = time.localtime(time.time())
        nowDate = time.strftime("%Y-%m-%d", nowTimeTup)
        # 如果当前日期不等于event表中最后一条数据的日期
        if nowDate != date:
            # 执行爬虫
            main.run()
    # event表空,执行爬虫
    else:
        main.run()

    data = sql_query.getFinalData()
    dic_data = {"confirm": data[0],
                "heal": data[1],
                "dead": data[2],
                "now_local_confirm": data[3],
                "local_confirm_add": data[4],
                "local_no_infect_add": data[5]
                }
    # 将中间红色字体的统计数据也传到前端
    return render_template('index.html',**dic_data)

# 柱状图1路由
@app.route('/getBarData1',methods=["get","post"])
def get_Bar_Data1():
    res = []
    province = []
    datalist = []
    for tup in sql_query.getBarData1():
        province.append(tup[0])
        datalist.append(tup[1])
    res.append(province),res.append(datalist)
    return jsonify({"data": res})

# 柱状图2(动态向上滑动)路由
@app.route('/getBarData2',methods=["get","post"])
def get_Bar_Data2():
    res = []
    for tup in sql_query.getBarData2():
        t = time.strptime(str(tup[0]), "%Y-%m-%d %H:%M:%S")
        event_time = str(t.tm_mon) + '-' + str(t.tm_mday) + " " + str(t.tm_hour) + ":" + str(t.tm_min)
        res.append(event_time + " " + tup[1])
    return jsonify({"data": res})

# 中间红色统计数据路由
@app.route('/finalData',methods=["get","post"])
def get_final_Data():
    data = sql_query.getFinalData()
    return jsonify({"confirm": data[0], "heal": data[1], "dead": data[2],
                    "now_local_confirm": data[3],"local_confirm_add": data[4],
                    "local_no_infect_add": data[5]})

# 地图数据路由
@app.route("/getMapData",methods=["get","post"])
def get_Map_Data():
    # post请求参数在request.form中
    id = request.form.get("id")
    res = []
    for tup in sql_query.getMapData(id):
        res.append({"name": tup[0], "value": int(tup[1])})
    return jsonify({"data": res})

# 折线图1路由
@app.route("/getLineData1",methods=["get","post"])
def get_Line_Data1():
    res = []
    ds = []
    heal_add = []
    dead_add = []
    for tup in sql_query.getLineData1():
        # datetime.datetime要转换为str
        t = time.strptime(str(tup[0]), "%Y-%m-%d %H:%M:%S")
        ds.append(str(t.tm_mon) + '.' + str(t.tm_mday))
        heal_add.append(tup[1])
        dead_add.append(tup[2])
    res.append(ds),res.append(heal_add),res.append(dead_add)
    return jsonify({"data": res})

# 折现图2路由
@app.route("/getLineData2",methods=["get","post"])
def get_Line_Data2():
    res = []
    ds = []
    local_confirm_add = []
    local_no_infect_add = []
    for tup in sql_query.getLineData2():
        # datetime.datetime要转换为str
        t = time.strptime(str(tup[0]), "%Y-%m-%d %H:%M:%S")
        ds.append(str(t.tm_mon) + '.' + str(t.tm_mday))
        local_confirm_add.append(tup[1])
        local_no_infect_add.append(tup[2])
    res.append(ds),res.append(local_confirm_add),res.append(local_no_infect_add)
    return jsonify({"data": res})

# 饼形图路由
@app.route("/getPieData",methods=["get","post"])
def get_Pie_Data():
    res = []
    for tup in sql_query.getPieData():
        res.append({"value":tup[1],"name":tup[0]})
    return jsonify({"data": res})

#定时执行爬虫的路由
@app.route("/setMessage",methods=["get","post"])
def set_Message():
   # 执行爬虫
    try:
        main.run()
        return jsonify({"success": 200})
    except:
        return jsonify({"success": 500})


if __name__ == '__main__':
    app.run(port=80)

六、论文参考

  • 计算机毕业设计选题推荐-新冠肺炎疫情实时监控可视化系统-论文参考:
    计算机毕业设计选题推荐-新冠肺炎疫情实时监控可视化系统-论文参考

结语

计算机毕业设计选题推荐-新冠肺炎疫情实时监控可视化系统-Python+爬虫项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:⬇⬇⬇

精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐