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部署
相关推荐
Csvn2 天前
🌟 LangChain 30 天保姆级教程 · Day 13|OutputParser 进阶!让 AI 输出自动转为结构化对象,并支持自动重试!
python·langchain
2501_944934732 天前
产品策划需要哪些数据分析能力?如何用数据验证需求优先级
信息可视化·数据挖掘·数据分析
王霸天2 天前
💥别再抄网上的Scale缩放代码了!50行源码教你写一个永不翻车的大屏适配
前端·vue.js·数据可视化
cch89182 天前
Python主流框架全解析
开发语言·python
sg_knight2 天前
设计模式实战:状态模式(State)
python·ui·设计模式·状态模式·state
好运的阿财2 天前
process 工具与子agent管理机制详解
网络·人工智能·python·程序人生·ai编程
新知图书2 天前
Power BI Desktop下载、安装与界面介绍
数据分析·power bi·商业数据分析
张張4082 天前
(域格)环境搭建和编译
c语言·开发语言·python·ai
weixin_423533992 天前
【Windows11离线安装anaconda、python、vscode】
开发语言·vscode·python
babe小鑫2 天前
会计岗位学习数据分析的价值分析
学习·数据挖掘·数据分析