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

相关推荐
SelectDB技术团队17 分钟前
兼顾高性能与低成本,浅析 Apache Doris 异步物化视图原理及典型场景
大数据·数据库·数据仓库·数据分析·doris
nuclear201129 分钟前
使用Python 在Excel中创建和取消数据分组 - 详解
python·excel数据分组·创建excel分组·excel分类汇总·excel嵌套分组·excel大纲级别·取消excel分组
Lucky小小吴44 分钟前
有关django、python版本、sqlite3版本冲突问题
python·django·sqlite
GIS 数据栈1 小时前
每日一书 《基于ArcGIS的Python编程秘笈》
开发语言·python·arcgis
爱分享的码瑞哥1 小时前
Python爬虫中的IP封禁问题及其解决方案
爬虫·python·tcp/ip
statistican_ABin2 小时前
R语言数据分析案例45-全国汽车销售数据分析(可视化与回归分析)
数据挖掘·数据分析
傻啦嘿哟2 小时前
如何使用 Python 开发一个简单的文本数据转换为 Excel 工具
开发语言·python·excel
B站计算机毕业设计超人2 小时前
计算机毕业设计SparkStreaming+Kafka旅游推荐系统 旅游景点客流量预测 旅游可视化 旅游大数据 Hive数据仓库 机器学习 深度学习
大数据·数据仓库·hadoop·python·kafka·课程设计·数据可视化
IT古董3 小时前
【人工智能】Python在机器学习与人工智能中的应用
开发语言·人工智能·python·机器学习
湫ccc3 小时前
《Python基础》之pip换国内镜像源
开发语言·python·pip