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

基于Python+Django的气象数据分析与可视化系统

前言

随着互联网技术不断地发展,网络与大数据成为了人们生活的一部分,而气象数据分析与可视化系统 作为网上应用的一个全新的体现,由于其特有的便捷性,已经被人们所接受
本系统采用的框架为Django和python开发了气象数据分析与可视化系统 。通过分析气象数据分析与可视化系统的需求,建立起了相关的开发模型,构建出相关的系统需要的开发环境

开发技术

Python语言

Python是由荷兰数学和计算机研究学会的吉多·范罗苏姆于20世纪90年代设计的一款高级语言。Python优雅的语法和动态类型,以及解释型语言的本质,使它成为许多领域脚本编写和快速开发应用的首选语言。Python相比与其他高级语言,开发代码量较小,代码风格简洁优雅,拥有丰富的第三方库。Python的代码风格导致其可读性好,便于维护人员阅读维护,程序更加健壮。Python能够轻松地调用其他语言编写的模块,因此也被成为“胶水语言”。
Python的应用场合非常广泛,在科研领域中,可以用Python训练人工智能模型,也可以对实验数据进行数据分析。在生活中,Python提供了很多优秀的、开源的Web开发框架,例如Django、Flask、Pyramid、Tornado等。知乎、豆瓣网、Youtube等知名应用都是由Python为基础进行开发的。相比于其他框架,Django有着更加丰富的插件,作为企业级框架也很好上手,适合本次开发。此次气象数据分析与可视化系统 是开发一个Web应用,采用Django框架,将在下一节进行具体介绍。本次开发选用的是Python3.6.4版本。

MySQL数据库

MySQL数据库属于关系型数据库,性能较为优秀,目前隶属于Oracle旗下的公司之一。MySQL数据库通常应用在开发Web应用上,属于较为流行的数据库软件之一,可以将气象数据分析与可视化系统 的数据存放在数据库利用数据库SQL语句定义的表格当中,不用一定将数据存储在同一个地方,这样可以提高对数据库记录访问的速度并增加访问的灵活性。MySQL数据库语句可以被人们轻松理解,简单易用的特点使得较多中小型企业选择使用。MySQL使用的线程为多线程的形式,这有助于支持多处理器进行处理。MySQL通常能够使用高性能库代替函数库,这样可以提高对数据的访问。如果只是想要查询数据库里的数据的时候,一般不会分配内存资源。

Django框架简介

Django被官方称之为“完美主义者框架”,只需要很少的代码就能更快的完成一个优秀的Web应用。Django采用了MTV框架模式,此模式根据MVC进行改进形成了更适于Django的设计模式。M为模型(Model)、T为模板(Template)、V为视图(View)。下面介绍部分Django的核心与优点:
(1)对象关系映射(ORM,Object-Relation-Mapping):ORM的方法论有着三个核心原则:
①简单:以最基本的形式构建数据。
②传达性:数据库结构被任何人都能理解的语言文档化。
③精确性:基于数据模型创建正确标准化的结构。
用于Python之中即是以Python类形式定义数据模型,类中的每一个属性对应着数据库中的一列。引入ORM后,无需编写原生SQL语句,使用基于面向对象的思想去编写类、对象、调用方法等,ORM会将其映射成SQL语句通过pymysql执行。
(2)路由配置(URLConf):Django的URL设置更加灵活优雅,看似复杂难懂,但使用的都是简单的正则表达式,你可以随心所欲的创造优美的、简洁的、专业
(3)的地址。
(4)模板(Template):模板可以理解为承载数据的工具,为了将数据从视图中分离出来,通过各种各样的标签来进行数据的传输。Django的模板融入了面向对象中继承的思想,提高了复用减少冗余代码。
(5)视图(View):视图就是views.py中的函数,也就是逻辑代码,为了将URL和视图关联起来,用到了上述的URLConfs,URLConfs将URL模式映射到视图中,每个视图有两件事是必须要做的:返回一个包含被请求页面的HttpResponse对象,或者抛出一个异常。
(6)后台管理系统(Django-Admin):Django提供的一个基于Web的管理工具。
Django-Admin来自django.contrib也就是Django的标准库,默认被配置好,只需要激活启用即可,它的优势在于可以快速对数据库的各个表进行增删改查,一行代码即可管理一张数据库表,相比于手动后台1个模型一般需要4个urls,4个视图函数和4个模板,可以说Django完成了一个程序编写的大部分重复工作,并且对于气象数据分析与可视化系统 这种以管理工作为重系统来说,极度契合。
(7)应用(Application):当项目规模过大时,难免会产生目录过长,文件过多的问题,Django理念中的App可以将项目相对独立的进行开发,插拔的工作方式和独立性让开发者废弃的App即使删除也不会影响整体,是一种不可多得的理念。
因为本次使用的Python版本为3.6.4,低版本的Django不支持Python3,故此次使用的Django版本为3.2.12。

Hadoop框架

Hadoop 由许多元素构成。其最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS的上一层是MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。

hive

hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表。

系统总体结构图

在这里插入图片描述

功能设计

  • 登录:用户想要使用系统的功能之前首先需要登录,在登录页面中输入用户名和密码之后点击登录按钮,如果通过了验证则能够进入到主页当中
  • 查询:管理员登录系统之后可以在后台管理中搜索系统的信息,如果输入的系统信息在数据库记录中找不到则不能显示查询信息。
  • 用户管理:管理员登录系统后可以修改用户信息

数据库设计

系统数据实体的设计依赖于E-R的分析和设计,通过E-R能够得到数据库表的设计,E-R能够描述系统所涉及到的实体,还能够描述系统中不同实体的联系和关系
(1)需要能够充分地反映现实世界,包括现实事物之间的联系,这样有利于满足不同程序开发者对数据处理的需要。
(2)需要能够容易理解,从而可以使得即使不熟悉计算机的用户也可以快速使用系统,如果一个数据库设计得较为成功的话用户也可以选择参与。
(3)需要能够易于变更。当系统应用环境发生改变的时候,概念模型往往需要改变,因此数据库需要设计得以后容易修改概念模型。
以下是对系统部分实体E-R如下:
在这里插入图片描述
在这里插入图片描述

部分效果展示

管理员功能的实现

在登录界面中需要使用el-input标签实现输入框供管理员输入用户名和密码,需要使用name标签表示不同的信息。在登录界面中还需要包括角色的按钮,使用el-radio表示按钮,管理员可以点击按钮从而选择不同的角色在这里插入图片描述
管理员登录进入气象数据分析与可视化系统 可以查看首页、天气数据分析、用户系统、认证和授权等功能,进行详细操作在这里插入图片描述
管理员点击用户信息;在用户信息页面输入ID、用户名、昵称、图片、手机号、性别、个人简介等信息,进行搜索,增加或删除用户信息等操作在这里插入图片描述

数据可视化分析看板展示

气象数据分析与可视化系统 分析系统展示图在这里插入图片描述
在这里插入图片描述

下图是所有城市天气信息表,通过python爬取清洗后的数据形式展示在这里插入图片描述


http://www.mrgr.cn/news/59289.html

相关文章:

  • 【ArcGIS Pro实操第5期】全局及局部空间插值:GPI、LPI、IDW等
  • springboot多模块打包时出现Could not resolve dependencies for project
  • nginx负载均衡机制实现用户无感更新服务
  • CMU生成式人工智能大模型:从入门到放弃(三)
  • 什么样的JSON编辑器才好用
  • day02|计算机网络重难点之HTTP请求报文和响应报文、HTTP的请求方式(方法字段)、GET请求和POST请求的区别
  • 前端工程化面试题
  • asp.net core 入口 验证token,但有的接口要跳过验证
  • 尚硅谷-react教程-求和案例-@redux-devtools/extension 开发者工具使用-笔记
  • 工程项目管理软件怎么选?推荐7款实用工具
  • 越权漏洞概述
  • MinIO 完整使用案例
  • class 36 二叉树高频题目 - 上 (不含有树形dp)
  • 【QT】windows 平台 QT6.8 安装
  • C语言笔记(指针题目)例题+图解
  • Ubuntu安装repo
  • B+Tree简介
  • (done) 有服务器的权限时,如何查看服务器监听的端口?
  • Java中的声明和创建
  • 基于Multisim的音频放大电路设计与仿真
  • 【算法】拓扑排序
  • 大模型,多模态大模型面试问题基础记录24/10/24
  • 【SQLite】改善默认输出格式不直观难以阅读问题:通过修改输出设置提升数据可读性
  • JavaScript part2
  • 【mysql进阶】4-3. 页结构
  • stm32 gpio基础操作和中断操作