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部署
相关推荐
杨杨杨大侠10 小时前
Jev、Kev、Laya:决策模型怎么选,什么时候需要微调?
人工智能·python·agent
LOVE️YOU11 小时前
Python 在定义函数时,究竟定义的是什么?
python
段一凡-华北理工大学11 小时前
大模型应用开发 100 天:Python + LLM 从入门到精通 day26~Prompt 调试与优化——A/B 测试与效果评估
windows·python·大模型·prompt·智能体·提示词工程·高炉智能化
Minecraft红客11 小时前
以撒的结合
python·游戏·电脑·娱乐
Circ.11 小时前
Python 调试 Litellm 本地大模型接口:模型列表与对话接口实操踩坑记录
开发语言·python
千里码aicood12 小时前
基于ECharts的电商平台用户行为数据分析
信息可视化·数据分析·echarts
风早爽太12 小时前
用 ‌Render‌ 快速部署网站和常见问题解决
python·fastapi
李航198313 小时前
给自己的图形引擎,配上了AI渲染,做设计真是太方便了
人工智能·python·计算机视觉·ai·ai编程
L@ncor13 小时前
第六章 框架开发实践 · 学习笔记(AutoGen / AgentScope / CAMEL / LangGraph)
python·框架·autogen·langgraph·agentscope
Zhou14113613 小时前
SpringSecurity_02_授权与高级功能
开发语言·python