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部署
相关推荐
Zhansiqi36 分钟前
day42部分题目
python
小王不爱笑13242 分钟前
IO 模型
开发语言·python
kishu_iOS&AI1 小时前
Conda 简要说明与常用指令
python·安全·conda
小陈工1 小时前
FastAPI性能优化实战:从每秒100请求到1000的踩坑记录
python·性能优化·django·flask·numpy·pandas·fastapi
知我Deja_Vu1 小时前
【避坑指南】ConcurrentHashMap 并发计数优化实战
java·开发语言·python
njidf1 小时前
用Python制作一个文字冒险游戏
jvm·数据库·python
呆呆小孩1 小时前
Anaconda 被误删抢救手册:从绝望到重生
python·conda
liliangcsdn1 小时前
LLM复杂数值的提取计算场景示例
人工智能·python
人工智能AI酱2 小时前
【AI深究】逻辑回归(Logistic Regression)全网最详细全流程详解与案例(附大量Python代码演示)| 数学原理、案例流程、代码演示及结果解读 | 决策边界、正则化、优缺点及工程建议
人工智能·python·算法·机器学习·ai·逻辑回归·正则化
WangLanguager2 小时前
逻辑回归(Logistic Regression)的详细介绍及Python代码示例
python·算法·逻辑回归