优化更新

This commit is contained in:
2026-09-13 23:01:19 +08:00
parent 0c67b3e8b5
commit 23bd737b82
88 changed files with 2214 additions and 2503 deletions
@@ -8,7 +8,7 @@
```
┌─────────────────────────────────────────────────────────────────────────┐
│ Browser (Vue3 + ElementPlus) │
│ Browser (Vue3 + NaiveUI) │
│ Axios HTTP Request / Vite Dev Proxy │
└──────────────────────────────┬──────────────────────────────────────────┘
│
@@ -52,7 +52,7 @@
│ ▼ │
│ ┌─────────────────────┐ ┌──────────────────────────────────────────┐ │
│ │ SQLAlchemy 2.0 │ │ Redis │ │
│ │ ORM → SQL 生成 │ │ Token 黑名单 · 登录锁 · 限流计数 · 缓存 │ │
│ │ ORM → SQL 生成 │ │ Token 黑名单 · 登录锁 · 缓存 │ │
│ └──────────┬──────────┘ └──────────────────────────────────────────┘ │
└─────────────┼───────────────────────────────────────────────────────────┘
▼
@@ -92,19 +92,18 @@
```python
# src/app.py - create_app() 中间件注册顺序
register_cors(app) # CORS(最外层)
register_rate_limit(app) # 滑动窗口限流
register_upload_size_limit(app) # 上传体积预拦截
register_redis(app) # Redis 上下文注入
register_db_session(app) # DB 会话管理
CORS(app, ...) # CORS(最外层)
ProxyFix(app.wsgi_app, ...) # 可信代理
register_operation_log(app) # 操作日志记录
register_transaction(app) # AOP 事务管理
register_auth(app) # JWT 认证
register_v1(app) # 路由注册
register_extends(app) # 扩展初始化
register_middleware(app) # 认证中间件
register_v1(app) # 路由注册
register_exception(app) # 全局异常处理
```
外层中间件(CORS、限流)先拦截,内层中间件(DB 会话、Redis 注入)后处理,响应沿反向链返回。限流被置于 CORS 内层,被限流的请求不进入 DB 会话与操作日志,避免 DoS 攻击时日志表与 DB 连接不降反增。
外层中间件(CORS)先拦截,内层中间件(DB 会话、Redis 注入)后处理,响应沿反向链返回。
### 5. 全局异常处理
@@ -177,16 +176,17 @@ def create_app():
app = Flask(__name__)
# 1. 验证配置
validate_config()
# 2. 初始化扩展
register_extends(app)
# 2. CORS + ProxyFix
CORS(app, ...)
app.wsgi_app = ProxyFix(app.wsgi_app, ...)
# 3. 注册中间件
register_cors(app)
register_redis(app)
register_db_session(app)
register_operation_log(app)
register_transaction(app)
register_auth(app)
# 4. 注册路由
register_v1(app)
register_extends(app)
register_middleware(app)
register_error_handlers(app)
# 4. 依赖注入
register_v1(app)
# 5. 注册异常处理
register_exception(app)
@@ -202,7 +202,7 @@ def create_app():
```
┌──────────────────────────────────────────────────────────────┐
│ Frontend (Vue3) │
│ ElementPlus · Pinia · Vue Router · Axios │
│ NaiveUI · Pinia · Vue Router · Axios │
└──────────────────────────┬───────────────────────────────────┘
│ HTTP / JSON
┌──────────────────────────┴───────────────────────────────────┐
@@ -249,4 +249,4 @@ def create_app():
## 总结
项目采用经典的前后端分离 + 三层架构设计,通过中间件链实现横切关注点(认证、限流、日志、事务)的统一处理,通过基类模板方法消除重复 CRUD 代码,通过 WTForms 实现请求参数的声明式校验。整体架构在保持简洁的同时,具备良好的可扩展性和可维护性,适合企业级后台管理系统的快速开发与长期演进。
项目采用经典的前后端分离 + 三层架构设计,通过中间件链实现横切关注点(认证、日志、事务)的统一处理,通过基类模板方法消除重复 CRUD 代码,通过 WTForms 实现请求参数的声明式校验。整体架构在保持简洁的同时,具备良好的可扩展性和可维护性,适合企业级后台管理系统的快速开发与长期演进。