本项目是一个以 Flask + Vue2 + MySQL 为主的空气质量数据分析与预测系统,包含:
Flask + Vue2 + MySQL
当前数据库默认名称已统一为 design_361_air。
design_361_air
db/archive/design_air_test_legacy_full.sql
.idea
__pycache__
node_modules
npm install
api/templates/front/admin/src/views/modules/climate_forecast/
api/templates/front/admin/src/views/modules/config/
api/templates/front/admin/src/views/modules/storeup/
api/templates/front/admin/src/views/modules/systemintro/
api/templates/front/admin/src/views/modules/users/
api/templates/front/admin/src/main.js.bak
api/templates/front/admin/dist
api/templates/front/front/dist
/admin/
/front/
utils
/python0745x1xa/
tmp/air_quality_sync
Access denied
结论:现在不能严肃地说“所有历史代码都删完了”,但已经完成了“明显无用生成物 + 无路由死页面”的清理;剩余保留项都是当前运行链路或兼容链路的一部分。
8080
api/templates/front/admin
api/templates/front/front
utils/
E:\temp\weather├─ api/ Flask 应用主体│ ├─ main/ 路由与接口│ ├─ models/ SQLAlchemy 模型│ ├─ templates/front/ 前后台静态资源、源码与上传文件│ │ ├─ admin/ 后台 Vue2 工程│ │ └─ front/ 前台 Vue2 工程│ └─ bin/ JDBC 驱动等扩展资源├─ db/ 数据库脚本、结构文件、归档├─ scripts/ 数据导入与资源生成脚本├─ utils/ 鉴权、日志、预测、同步、Hadoop 扩展等├─ config.ini 数据库与 Redis 配置├─ configs.py Flask 配置├─ manage.py 初始化和运维命令├─ run.py 直接启动入口├─ 启动说明.md 启动说明└─ 项目技术文档.md 本文档
E:\temp\weather
├─ api/ Flask 应用主体
│ ├─ main/ 路由与接口
│ ├─ models/ SQLAlchemy 模型
│ ├─ templates/front/ 前后台静态资源、源码与上传文件
│ │ ├─ admin/ 后台 Vue2 工程
│ │ └─ front/ 前台 Vue2 工程
│ └─ bin/ JDBC 驱动等扩展资源
├─ db/ 数据库脚本、结构文件、归档
├─ scripts/ 数据导入与资源生成脚本
├─ utils/ 鉴权、日志、预测、同步、Hadoop 扩展等
├─ config.ini 数据库与 Redis 配置
├─ configs.py Flask 配置
├─ manage.py 初始化和运维命令
├─ run.py 直接启动入口
├─ 启动说明.md 启动说明
└─ 项目技术文档.md 本文档
users
username
password
role
image
yonghu
yonghuzhanghao
mima
yonghuxingming
touxiang
xingbie
shoujihaoma
city
code
name
province
city_type
longitude
latitude
is_active
climate_data
date
temp_high
temp_low
temp_avg
precipitation
wind_speed
humidity
aqi
city_id
kongqizhiliang
city_code
city_name
record_date
aqi_index
quality_level
pm25_avg
pm10_avg
so2_avg
no2_avg
co_avg
o3_avg
city_code + record_date
news
newstype
storeup
systemintro
syslog
config
run.py
manage.py
run
create_all
initsql
api/__init__.py 负责:
api/__init__.py
main_bp
ThreadPoolExecutor(20)
config.ini
after_request
api/main/__init__.py 会扫描 api/main/ 目录,并自动导入所有合法的 *_v.py 模块。 这意味着:
api/main/__init__.py
api/main/
*_v.py
users_v.py
Yonghu_v.py
id
Climate_data_v.py
count
group
value
valueMul
importExcel
Kongqizhiliang_v.py
cities
summary
trend
rankings
levelStats
provinceStats
cityStats
pollutantStats
syncLatest
Climate_forecast_v.py
datasets
variables
methods
history/<city_id>
predict
News_v.py
Newstype_v.py
Storeup_v.py
Syslog_v.py
schema_v.py 提供一批通用能力:
schema_v.py
当前后台主导航聚焦在以下模块:
后台首页和驾驶舱页面主要展示:
前台主导航当前包含:
前台核心页面包括:
home
air_analysis
climate_forecast
climate
air
预测相关代码位于 utils/forecast/。
utils/forecast/
ExponentialSmoothing
ARMAModel
CombinedForecast
recent
delayed
historical
这部分设计的核心价值是:即使样本不是当天实时数据,系统也会明确告诉前端“这是近端趋势推演还是历史样本推演”,避免把模型结果误读为实时监测值。
scripts/ 目录下已有多种导入脚本:
scripts/
import_kongqizhiliang_excel.py
import_kongqizhiliang_csv.py
import_kongqizhiliang_city_daily_csv.py
import_air_quality_news.py
download_province_geojson.py
utils/air_quality_sync.py
配置文件:config.ini
关键项:
type=mysql
host=localhost
port=3306
user=root
passwd=123456
db=design_361_air
hasHadoop=none
配置文件:configs.py
configs.py
0.0.0.0
DevelopmentConfig
空气质量数据分析与预测系统
cd E:\temp\weatherpip install -r requirements.txtpython manage.py initsql --ini config.inipython manage.py create_allpython run.py
cd E:\temp\weather
pip install -r requirements.txt
python manage.py initsql --ini config.ini
python manage.py create_all
python run.py
后台:
cd E:\temp\weather\api\templates\front\adminnpm install
cd E:\temp\weather\api\templates\front\admin
前台:
cd E:\temp\weather\api\templates\front\frontnpm install
cd E:\temp\weather\api\templates\front\front
cd E:\temp\weather\api\templates\front\adminnpm run build
npm run build
cd E:\temp\weather\api\templates\front\frontnpm run build
api/main/*_v.py
dist
如需继续深挖,我下一步可以直接做两件事中的任意一个: