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部署
相关推荐
Highcharts.js15 小时前
如何使用Highcharts SVG渲染器?
开发语言·javascript·python·svg·highcharts·渲染器
啊阿狸不会拉杆15 小时前
《机器学习导论》第 7 章-聚类
数据结构·人工智能·python·算法·机器学习·数据挖掘·聚类
摇滚侠15 小时前
Java,举例说明,函数式接口,函数式接口实现类,通过匿名内部类实现函数式接口,通过 Lambda 表达式实现函数式接口,演变的过程
java·开发语言·python
禹凕15 小时前
Python编程——进阶知识(面向对象编程OOP)
开发语言·python
一晌小贪欢15 小时前
深入理解 Python HTTP 请求:从基础到高级实战指南
开发语言·网络·python·网络协议·http
七牛云行业应用15 小时前
1M上下文腐烂?实测Opus 4.6 vs GPT-5.3及MoA降本架构源码
人工智能·python·llm·架构设计·gpt-5·claude-opus
Java后端的Ai之路20 小时前
【Python 教程15】-Python和Web
python
冬奇Lab21 小时前
一天一个开源项目(第15篇):MapToPoster - 用代码将城市地图转换为精美的海报设计
python·开源
二十雨辰1 天前
[python]-AI大模型
开发语言·人工智能·python