Files
djangoadmin-wiki/DjangoAdmin_Flask_AntdVue/zh/changelog.md
T
2026-09-13 21:53:16 +08:00

301 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 更新日志
:::tip 说明
更新日志是项目演进的完整记录,帮助开发者和企业了解每个版本的能力变化与技术演进方向。对于开发者,可快速掌握新功能与 API 变更,降低升级成本;对于企业,可评估版本稳定性与功能成熟度,为技术选型和升级决策提供依据。建议在升级前阅读目标版本的变更内容,确保业务代码平滑适配。
:::
## 版本总览
| 版本 | 日期 | 主要内容 |
|:-----|:-----|:---------|
| 2.0.0 | 2024-04-12 | 用户 / 角色 / 菜单 / 部门 / 岗位 / 职级管理 |
| 2.1.0 | 2024-07-18 | RBAC 权限体系 + JWT 认证 + 登录安全 |
| 2.2.0 | 2024-10-05 | 系统配置 + 数据字典 + 部门树增强 |
| 2.3.0 | 2025-01-23 | 内容管理 + 富文本编辑器 + XSS 防护 |
| 2.4.0 | 2025-03-14 | 多数据库支持 + Docker 容器化部署 |
| 2.5.0 | 2025-06-09 | Vue3 + AntDesign Vue + TypeScript + Vite |
| 2.6.0 | 2025-09-22 | 代码生成器 + Excel 导入导出 |
| 2.7.0 | 2025-12-16 | 定时任务调度 + 操作日志 + 登录日志 |
| 2.8.0 | 2026-03-28 | IP 地理位置 + UA 解析 + 安全防护增强 |
| 2.9.0 | 2026-06-07 | 技术文档体系 + 契约测试 + 缓存优化 |
| **3.0.0** | **2026-09-01**** | **模块化分层 + Repository 层 + AOP 事务 + 数据迁移工具** |
## [3.0.0] - 2026-09-01
**模块化分层架构落地,新增 Repository 数据访问层与 AOP 事务管理,配套跨库迁移工具。**
### 新增
- **模块化分层架构**:业务模块按功能域分组(`system` / `cms` / `association`),每个模块独立包含 Router、Service、Repository、Schema 四层,职责清晰、可插拔扩展
- **Repository 数据访问层**:`BaseRepository` 提供 `find_page` / `find_list` / `first_by` / `exists_by` / `count_by` 等通用方法,业务代码与 SQLAlchemy ORM 彻底解耦
- **Service 基类模板方法**:`BaseService` 封装 page / detail / add / update / remove 标准流程 + 覆写钩子(`before_add` / `before_delete` / `_enrich_page_records` 等),新模块仅需 4 个文件 + 1 行注册即可接入
- **AOP 事务管理**:`before_request` 标记事务、`after_request` 自动提交(POST/PUT/DELETE + HTTP 200 + code=0)、`teardown_request` 异常回滚,业务代码零事务代码
- **WTForms 表单校验基类**:`BaseForm` + `validators` 声明式约束 + `validate_` 自定义校验器,唯一性校验通过 `Repository.exists_by(filters, exclude_id)` 实现
- **中间件链式处理**:登录校验(白名单机制)→ 演示模式拦截 → AOP 事务 → 操作日志自动捕获,职责单一,可插拔配置
- **契约测试体系**:路由快照、权限快照、表名快照三管齐下,自动守护接口契约
- **集成测试框架**:事务一致性验证 + 操作日志自动校验,确保核心业务流程稳定可靠
- **跨库数据迁移工具**(`scripts/migrate_db.py`):支持 MySQL / PostgreSQL / SQL Server / SQLite / Oracle 间的全量数据迁移,含表结构同步与数据泵送
- **数据库版本化迁移**:基于 Flask-Migrate / Alembic,Schema 变更可追溯、可回滚,支持多环境发布
- **统一文件上传接口**:单一接口支持图片、文档、压缩包等全类型文件,流式校验,超限立即中断,避免内存溢出
- **文件安全防护**:扩展名白名单 + 魔术字节(Magic Number)校验 + 路径遍历防护 + 高危格式拦截(如 `.php`、`.jsp` 等)
### 优化
- 查询方法自动过滤软删除记录(`is_delete=0`),自动跳过空值查询条件,减少业务代码冗余
- 批量删除统一响应格式,前后端文案保持一致
- API 响应格式全面标准化(`code / msg / data / ok`),前端解析零歧义
- 文件上传流式大小校验,超限立即中断,避免大文件耗尽服务器内存
- 配置项命名规范统一,遵循 `{模块}_{功能}_{属性}` 命名约定
- 代码生成器模板同步适配新分层结构,生成代码开箱即用
- `BaseModel.__init__` 自动将 camelCase 参数转为 snake_case 并过滤无效字段
### 修复
- 上传接口参数缺失时未返回明确错误提示,现已补充完整参数校验与错误文案
- Excel 导入时响应解析异常,修复数据类型映射逻辑
- 数据表字段约束冲突,修复迁移脚本中字段定义重复问题
## [2.9.0] - 2026-06-07
**技术文档体系全面上线,新增契约测试与缓存优化。**
### 新增
- **技术文档体系**:97 篇技术文档,覆盖快速入门、模块开发、架构设计、运维部署、规范标准全场景
- **数据字典驱动**:字典编码自动映射显示文本,前端零配置,支持运行时刷新
- **权限缓存主动失效**:权限变更实时生效,支持版本号兜底机制,极端场景下自动降级
- **前端组件库文档化**:核心组件完整的 Props、Events、Slots 说明,含使用示例
- **API 接口速查表**:按模块分组的接口清单,含路径、方法、权限标识、请求/响应示例
- **多环境配置示例**:提供开发、测试、生产三套完整配置模板
### 优化
- 登录锁定策略:按 IP 与用户名组合统计失败次数,避免单一维度误锁
- 会话管理:异常时自动回滚事务,防止数据库连接泄露
- Token 续签:过期前 5 分钟自动刷新,用户无感知续期
- 代码生成器:生成代码风格与手写代码一致,缩进与命名规范完全统一
### 修复
- 权限缓存刷新延迟,变更后最长 3 秒生效
- Token 续签并发竞态,添加分布式锁保护
- 代码生成器遗漏唯一性校验声明,现已自动生成
## [2.8.0] - 2026-03-28
**新增 IP 地理位置查询与 UA 解析,安全防护全面增强。**
### 新增
- **IP 地理位置查询**:基于离线 GeoIP 数据库,服务启动时加载内存,查询零延迟,无外部 API 依赖
- **User-Agent 解析**:自动识别客户端操作系统类型与版本、浏览器名称与版本
- **操作日志自动记录**:所有写操作(POST / PUT / DELETE)自动捕获请求参数与响应结果,无需手动埋点
- **验证码防刷**:按 IP 频率控制,单 IP 每分钟最多获取 5 次验证码,超限拒绝生成
### 优化
- JWT 认证增强:支持令牌主动刷新与黑名单机制,登出后令牌立即失效
- 权限校验:管理员账号(user_id=1)自动放行所有权限校验
- 会话管理:请求级事务自动提交与回滚,异常时自动回滚,无需手动处理
- 文件上传安全:扩展名白名单与流式大小校验双重防护
### 修复
- 令牌刷新后旧令牌未加入黑名单,现已修复
- 大文件上传超时,调整 Nginx 与 Gunicorn 超时参数
- 并发请求会话泄露,修复会话绑定逻辑
## [2.7.0] - 2025-12-16
**新增定时任务调度与日志审计能力。**
### 新增
- **定时任务调度**:支持 Cron 表达式、固定间隔、指定时间三种触发方式,基于 APScheduler 实现
- **任务执行日志**:完整记录每次执行的开始时间、结束时间、执行状态、耗时、错误详情
- **登录日志**:记录所有登录与退出行为,含 IP 地址、地理位置、设备信息、登录结果
- **数据字典缓存**:Redis 缓存加速字典查询,支持手动刷新与变更自动失效
- **权限列表缓存**:变更时主动失效,保障权限数据实时性
### 优化
- 定时任务分布式锁:多实例部署时基于 Redis 分布式锁避免任务重复执行
- 字典查询:支持按编码直接获取字典项列表,无需逐条查询
- 系统配置:运行时动态修改,无需重启服务生效
### 修复
- 定时任务夏令时偏移,修复 Cron 表达式在夏令时切换日的执行偏差
- 字典项排序不生效,修复排序字段映射错误
- 配置值包含特殊字符时序列化异常,已修复
## [2.6.0] - 2025-09-22
**新增代码生成器与 Excel 导入导出能力。**
### 新增
- **代码生成器(CLI)**:根据数据库表结构一键生成 Model、Service、Router 及前端页面完整代码
- **代码生成器(Web UI)**:可视化操作界面,支持单表生成与批量生成
- **自定义模板引擎**:基于 Jinja2,支持自定义生成代码风格与目录结构
- **Excel 导入导出**:支持模板下载、数据校验、错误行跳过与错误详情导出
- **文件模板管理**:支持模板文件上传、版本管理与在线编辑
### 优化
- 代码生成器自动注册路由与权限节点,生成即用
- 生成代码自动适配分层结构(Router / Service)
- Excel 导入数据校验增强:支持必填、唯一性、长度、正则表达式等多种校验规则
### 修复
- 生成代码唯一性校验遗漏字段,已补全
- Excel 导出日期格式不一致(如 `2025-09-01` 与 `09/01/2025`),现已统一为 `YYYY-MM-DD HH:mm:ss`
- 模板渲染中文乱码,统一文件编码为 UTF-8
## [2.5.0] - 2025-06-09
**前端技术栈全面升级至 Vue3 生态。**
### 新增
- **Vue3 升级**:前端框架从 Vue 2 升级至 Vue3.4+,全面拥抱 Composition API
- **AntDesign Vue**:UI 组件库升级至 AntDesign Vue,适配 Vue3 生态
- **Pinia 状态管理**:替代 Vuex,更轻量、更灵活、TypeScript 支持更完善
- **TypeScript 类型安全**:全量类型定义,IDE 智能提示与编译时类型检查
- **Vite 构建工具**:替代 Webpack,开发服务器毫秒级启动,HMR 即时生效
### 优化
- 构建速度:Vite 开发服务器启动时间 < 500ms,热更新 < 100ms
- 代码规范:ESLint + Prettier + Stylelint 统一代码风格
- 组件体系:可插拔架构重构,按需加载,首屏加载体积减少 40%
### 修复
- 热更新偶尔失效,修复 HMR 边界条件
- TypeScript 类型定义不完整,补全 200+ 类型声明
- 部分组件样式在 Vue3 下兼容性问题,已修复
## [2.4.0] - 2025-03-14
**新增多数据库支持与 Docker 容器化部署。**
### 新增
- **多数据库支持**:通过 `DB_DRIVER` 环境变量一键切换 MySQL / PostgreSQL / SQL Server / SQLite / Oracle,业务代码零改动
- **SQLAlchemy 2.0**:升级至 SQLAlchemy 2.0+,声明式映射,统一 Core 与 ORM 接口
- **WTForms 数据校验**:声明式表单校验,`validators` 约束 + `validate_` 自定义校验器,运行时自动验证请求参数
- **Docker 容器化**:提供 Dockerfile + docker-compose.yml,支持一键启动完整环境
### 优化
- 数据库连接池参数可调(`POOL_SIZE` / `MAX_OVERFLOW` / `POOL_TIMEOUT`)
- 多数据库方言自动适配,分页语法差异由框架层屏蔽
- Docker 多阶段构建,最终镜像体积减小 60%
### 修复
- PostgreSQL 日期时间类型与 Python datetime 映射兼容
- SQL Server 分页查询使用 `OFFSET FETCH` 语法适配
- Oracle 大文本字段(CLOB)序列化异常,已修复
## [2.3.0] - 2025-01-23
**新增内容管理模块与 XSS 安全防护。**
### 新增
- **内容管理模块**:文章管理(分类、标签、状态流转)、公告管理(置顶、有效期)、友情链接、城市级联数据
- **富文本编辑器**:基于 WangEditor 集成,支持图片上传、视频嵌入、表格等丰富功能
- **XSS 防护**:基于 bleach 库的白名单 HTML 清洗机制,富文本内容自动过滤恶意脚本
- **文件字段自动处理**:上传文件自动迁移至目标存储,URL 自动补全
- **富文本字段自动处理**:嵌入图片自动迁移存储,内容自动 XSS 清洗
### 优化
- 文章状态流转:草稿 → 审核 → 发布 → 下架,完整生命周期管理
- 公告功能:支持置顶排序与有效期范围控制
- 文件上传:支持图片预览与裁剪功能
### 修复
- 富文本编辑器中图片路径为相对路径导致无法访问,已修复为绝对 URL
- 编辑时临时文件未清理,现已自动清理
- 批量删除时关联数据未同步删除,添加级联处理
## [2.2.0] - 2024-10-05
**新增系统配置与数据字典管理,部门树交互增强。**
### 新增
- **系统配置模块**:动态配置参数,运行时可调,修改即时生效,无需重启
- **参数管理模块**:系统参数与业务参数分类管理,支持参数分组与权限控制
- **字典模块增强**:字典项排序、启用/停用状态控制、批量导入导出
- **部门树形结构**:无限级部门树,支持拖拽排序与层级校验
### 优化
- 配置查询:支持按配置编码直接获取值,支持默认值兜底
- 字典导入导出:支持 Excel 批量导入字典项,含数据校验
- 部门排序:拖拽交互优化,实时保存排序结果
### 修复
- 字典编码重复校验遗漏,新增唯一性校验
- 部门删除时子部门未同步处理,添加级联删除选项
- 空配置值序列化异常,统一返回空字符串
## [2.1.0] - 2024-07-18
**新增 RBAC 权限体系与 JWT 认证,登录安全全面升级。**
### 新增
- **RBAC 权限体系**:用户-角色-菜单三层权限模型,支持按钮级权限控制
- **JWT 认证**:无状态令牌认证,支持令牌刷新与黑名单机制
- **登录安全**:图形验证码、失败次数锁定(5 次失败锁定 5 分钟)、密码 bcrypt 双重加盐加密
- **菜单管理**:动态路由生成,权限节点可视化配置
- **权限装饰器**:后端接口级权限拦截(`@check_permission`)
- **权限指令**:前端按钮级权限控制(`v-permission`)
### 优化
- 管理员账号(user_id=1)自动放行所有权限校验
- 权限数据 Redis 缓存加速,减少数据库查询
- 令牌过期自动跳转登录页,携带 redirect URL
### 修复
- 令牌过期响应码统一为 401,前端统一拦截处理
- 权限缓存刷新延迟,变更后实时失效
- 登录锁定时间计算错误,修复时间窗口逻辑
## [2.0.0] - 2024-04-12
**核心模块与基础架构。**
### 新增
- **用户管理**:用户账号管理、密码重置、启用/停用状态控制
- **角色管理**:角色 CRUD、权限节点配置
- **菜单管理**:菜单 CRUD、图标设置、动态路由生成
- **部门管理**:部门树形结构管理
- **岗位管理**:岗位信息维护
- **职级管理**:职级信息维护
- **统一响应格式**:`R.ok()` / `R.failed()` 标准化返回结构
- **Blueprint 模块化路由**:按业务域组织接口,支持独立注册与启用
- **Redis 缓存**:验证码存储、会话管理、JWT 黑名单