基于Django实现农业生产可视化系统
项目截图
登录
注册
首页
农业数据-某一指标表格展示
农业数据-某一指标柱状图展示
农业数据-某一指标饼状图展示
气候数据-平均气温地图展示
气候数据-降水量合并图展示
后台管理
一、系统简介
农业生产可视化系统是一款基于Django+MVT+MySQL架构的Web应用,主要用于农业指标和气象数据的分析与可视化展示。本系统采用简洁易懂的技术栈,特别适合Python Web初学者学习和使用。
系统实现了两大类数据的可视化分析:
- 农业指标数据:包括粮食产量、蔬菜产量等多种农业生产指标
- 气象数据:包括各地区气温、降水量等气象信息
本系统集成了数据爬取、清洗、存储和可视化等功能,为农业数据分析提供了全方位解决方案。
二、系统架构与技术栈
开发环境
- 编辑器:PyCharm 2023.1 旗舰版
- Python版本:3.9.16
- Django版本:4.2.2
- 数据库:MySQL 8.0.26
前端技术
- 基础:HTML + CSS + JavaScript + Echarts
- 框架:Semantic-UI + jQuery
- 可视化:多种图表展示,包括柱状图、饼图、地图等
后端技术
- Web框架:Django 4.2.1
- 数据处理:Python爬虫、pandas数据清洗
- 数据库交互:PyMySQL、SQLAlchemy
三、数据库设计
系统采用MySQL数据库,包含两个主要数据表:
-
农业数据表(agriculture)
- area:省市名称
- value:数值
- unit:单位
- zb:指标名称
- updateTime:更新年份
-
气象数据表(meteorology)
- city:城市名称
- month:月份
- avg_max_temperature:平均最高气温
- avg_min_temperature:平均最低气温
- avg_precipitation:平均降水量
- histroy_max_temperature:历史最高气温
- histroy_min_temperature:历史最低气温
四、系统部署详细步骤
1. 配置Python环境
使用PyCharm打开项目文件夹,配置Python解释器。若未安装所需依赖包,请运行:
pip install -r requirements.txt
如遇网络问题,建议使用国内镜像源:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
3. 数据库配置
步骤一:创建数据库
使用MySQL管理工具(如Navicat)创建名为agricultureDB
的数据库
步骤二:修改数据库连接信息
打开djangoProject/djangoProject/settings.py
文件,修改以下配置:
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'agricultureDB','USER': '您的MySQL用户名','PASSWORD': '您的MySQL密码','HOST': 'localhost','PORT': 3306}
}
4. 数据导入方式(二选一)
方式一:直接导入现有数据(推荐)
复制项目根目录下agricultureDB.sql
文件内容,在MySQL中执行
方式二:通过爬虫获取新数据
-
执行数据库迁移命令:
python manage.py makemigrations python manage.py migrate
-
运行爬虫采集数据:
python reptile_agriculture.py # 采集农业数据 python reptile_meteorology.py # 采集气象数据
-
将爬取的数据导入数据库:
python storeData.py
5. 创建管理员账号
在项目根目录下执行:
python manage.py createsuperuser
根据提示输入用户名、邮箱和密码
6. 启动系统
在项目根目录下(包含manage.py的目录)执行:
python manage.py runserver
7. 访问系统
- 前台首页:
http://127.0.0.1:8000/
- 后台管理:
http://127.0.0.1:8000/admin
五、系统功能详解
1. 用户管理
系统提供完整的用户管理功能:
- 用户注册:新用户可以通过注册页面创建账号
- 用户登录:已注册用户可通过登录页面进入系统
- 权限控制:区分普通用户和管理员权限
2. 农业数据分析
本模块提供多种形式的农业数据可视化:
- 表格展示:以表格形式直观展示各省市的农业指标数据
- 柱状图展示:直观比较不同地区之间的数据差异
- 饼图展示:清晰显示各地区数据的占比情况
用户可以选择不同的农业指标,如粮食产量、蔬菜产量等进行查看和分析。
3. 气象数据分析
气象数据模块提供以下可视化形式:
- 平均气温地图展示:通过地图形式展示各地区的气温分布情况
- 降水量合并图展示:以图表形式展示各地区的降水量数据
用户可以根据月份筛选数据,了解不同时期的气象变化情况。
4. 后台管理
系统提供功能完善的后台管理界面:
- 数据管理:对农业数据和气象数据进行增删改查
- 用户管理:管理系统用户信息
- 系统设置:调整系统相关配置
六、数据爬取与更新
系统提供了两个爬虫文件用于数据采集:
-
农业数据爬虫(reptile_agriculture.py)
- 负责采集各省市的农业指标数据
- 可以自定义需要采集的农业指标
-
气象数据爬虫(reptile_meteorology.py)
- 负责采集各城市的气象数据
- 包括气温、降水量等信息
爬虫采集的数据会保存在项目的data
目录下,然后通过storeData.py
导入数据库。
七、常见问题与解决方案
1. 数据库连接问题
问题描述:无法连接到MySQL数据库
解决方案:
- 确认MySQL服务是否已启动
- 检查数据库连接配置是否正确
- 确认数据库用户名和密码是否正确
- 检查MySQL服务器是否允许远程连接
2. 爬虫无法正常工作
问题描述:数据爬取失败或报错
解决方案:
- 检查网络连接是否正常
- 可能需要更新爬虫中的URL或解析规则
- 添加请求头信息模拟浏览器行为
- 增加请求延时,避免被目标网站限制
3. 系统启动失败
问题描述:运行python manage.py runserver
命令后系统无法启动
解决方案:
- 确认是否在正确的目录下执行命令
- 检查数据库配置是否正确
- 查看错误日志,定位具体问题
- 确认是否已完成数据库迁移
4. 前端显示异常
问题描述:图表或页面显示不正常
解决方案:
- 检查浏览器控制台是否有JavaScript错误
- 确认数据格式是否符合图表要求
- 清除浏览器缓存后重试
- 尝试使用不同的浏览器访问
八、系统扩展与优化建议
功能扩展
- 增加更多农业指标数据的采集与分析
- 添加数据预测功能,如农作物产量预测
- 集成GIS系统,提供更精确的地理位置分析
- 增加数据导出功能,支持多种格式导出
性能优化
- 优化数据库查询,提高系统响应速度
- 实现数据缓存机制,减少数据库访问次数
- 前端资源压缩,提高页面加载速度
- 实现分页加载机制,提高大数据量展示效率
用户体验提升
- 增加个性化设置,允许用户自定义界面
- 提供移动端适配,支持手机访问
- 增加用户交互功能,如数据标注、评论等
- 添加操作引导,提高系统易用性
通过本系统,用户可以便捷地查看和分析农业生产数据与气象数据,为农业生产决策提供数据支持。系统采用简洁的技术栈,易于上手和扩展,特别适合Python Web开发初学者学习和实践。