基于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爬取清洗后的数据形式展示

相关推荐
databook18 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar19 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805119 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_19 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
RestCloud19 小时前
数据传输中的三大难题,ETL 平台是如何解决的?
数据分析·api
数据智能老司机1 天前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机1 天前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i1 天前
drf初步梳理
python·django