327-基于Django的兰州空气质量大数据可视化分析系统

兰州空气质量大数据可视化分析系统

基于 Django + Vue3 + ECharts 的兰州空气质量大数据可视化分析系统。

项目结构

复制代码
lanzhou_air/
├── backend/                # Django后端
│   ├── config/             # 项目配置
│   ├── apps/
│   │   ├── users/          # 用户模块
│   │   ├── airdata/        # 空气数据模块
│   │   └── analysis/       # 数据分析模块
│   ├── spiders/            # 爬虫模块
│   └── utils/              # 工具函数
├── frontend/               # Vue3前端
│   ├── src/
│   │   ├── views/          # 页面组件
│   │   ├── components/     # 公共组件
│   │   ├── api/            # API接口
│   │   ├── stores/         # 状态管理
│   │   └── router/         # 路由配置
│   └── public/
└── docs/                   # 文档

功能模块

项目演示

327-基于Django的兰州空气质量大数据可视化分析系统




























1. 用户中心

  • 用户注册/登录
  • 个人信息管理(用户名、性别、出生日期、手机号、头像)
  • 密码修改

2. 空气质量查看

  • 年空气质量查询
  • 月空气质量查询
  • 空气质量等级筛选
  • 区县数据下钻

3. 月空气质量总结

  • 月空气质量等级
  • 月度数据对比
  • 优良天数统计

4. 年空气质量总结

  • 年空气质量等级
  • 年度数据对比
  • 污染物浓度变化趋势

5. 数据大屏

  • 兰州市地图展示
  • 区县空气质量排名
  • 实时AQI指数
  • 污染物浓度分布
  • 历史趋势图表

6. 管理后台

  • 用户管理
  • 数据管理
  • 爬虫控制

技术栈

后端

  • Python 3.10+
  • Django 4.2
  • Django REST Framework
  • MySQL 8.0
  • JWT认证

前端

  • Vue 3
  • Vite
  • Element Plus
  • ECharts 5
  • Pinia
  • Vue Router

爬虫

  • Requests
  • BeautifulSoup4

快速开始

1. 环境准备

确保已安装:

  • Python 3.10+
  • Node.js 18+
  • MySQL 8.0

2. 后端配置

bash 复制代码
# 进入后端目录
cd backend

# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate

# 安装依赖
pip install -r requirements.txt

# 创建数据库
mysql -u root -p
CREATE DATABASE design_327_air_quality CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
exit

# 修改数据库配置
# 编辑 config/settings.py 中的 DATABASES 配置

# 执行数据库迁移
python manage.py makemigrations
python manage.py migrate

# 初始化数据
python init_data.py

# 启动后端服务
python manage.py runserver

3. 前端配置

bash 复制代码
# 进入前端目录
cd frontend

# 安装依赖
npm install

# 启动开发服务器
npm run dev

4. 爬取数据

bash 复制代码
cd backend

# 爬取兰州空气质量数据(2020年至今)
python spiders/lanzhou_spider.py --start-year 2020

# 生成汇总数据
python spiders/summary_generator.py

默认账户

账户类型 用户名 密码
管理员 admin admin123
测试用户 test test123

API接口

用户接口

  • POST /api/users/register/ - 用户注册
  • POST /api/users/login/ - 用户登录
  • GET /api/users/profile/ - 获取个人信息
  • PUT /api/users/profile/ - 更新个人信息
  • POST /api/users/change-password/ - 修改密码

空气数据接口

  • GET /api/airdata/districts/ - 获取区县列表
  • GET /api/airdata/data/ - 获取空气质量数据
  • GET /api/airdata/monthly/ - 获取月度汇总
  • GET /api/airdata/yearly/ - 获取年度汇总
  • GET /api/airdata/dashboard/ - 获取大屏数据

分析接口

  • GET /api/analysis/yearly/ - 年度分析
  • GET /api/analysis/monthly/ - 月度分析
  • GET /api/analysis/trend/ - 趋势分析
  • POST /api/analysis/predict/ - AQI预测

兰州区县

代码 名称 级别
lanzhou 兰州市
chengguan 城关区
qilihe 七里河区
xigu 西固区
anning 安宁区
honggu 红古区
yongdeng 永登县
gaolan 皋兰县
yuzhong 榆中县

空气质量等级

AQI范围 等级 颜色
0-50 绿色
51-100 黄色
101-150 轻度污染 橙色
151-200 中度污染 红色
201-300 重度污染 紫色
>300 严重污染 褐红色

注意事项

  1. 爬虫使用请遵守目标网站的robots.txt规则
  2. 建议设置合理的爬取间隔,避免对目标网站造成压力
  3. 生产环境请修改SECRET_KEY和数据库密码
  4. 建议使用HTTPS部署
相关推荐
余丁,微生信2 小时前
在线绘制Nature Genetics同款带背景的GO富集条形图
数据可视化·论文插图·生信分析·科研绘图·富集分析·科学科普·nature genetics
清水白石0083 小时前
从“类型体操”到工程设计:用 Python 解释协变、逆变与不变
网络·windows·python
余丁,微生信3 小时前
聚类和流向:在线绘制热图+桑基图组合图展示基因表达和所属通路
数据可视化·生信分析·科研绘图·热图·桑基图·科学科普·基因表达
看海的四叔3 小时前
【SQL】SQL-管好你的字符串
大数据·数据库·hive·sql·数据分析·字符串
hrhcode3 小时前
【LangGraph】四.持久化:保存和恢复执行状态
python·ai·langchain·agent·langgraph
Mr数据杨3 小时前
飞船乘客状态预测与金融风控建模启发
大数据·机器学习·数据分析·kaggle
xxyy8883 小时前
关于labelimg安装后在标注过程中闪退和死机的问题处理
开发语言·python
卷Java4 小时前
上下文压缩
开发语言·windows·python
AI技术增长4 小时前
Pytorch图像去噪实战(十二):DDPM图像去噪完整训练流程,构建可复现扩散模型工程
pytorch·python·深度学习
本地化文档4 小时前
setuptools-docs-l10n
python·github·gitcode