Skip to content

Latest commit

 

History

History
113 lines (85 loc) · 3.37 KB

File metadata and controls

113 lines (85 loc) · 3.37 KB

代码重构总结

概述

app.py 中的历史记录相关代码拆分到独立的模块中,提高代码的可维护性和可读性。

重构内容

1. 新建文件: history_routes.py

创建了专门处理历史记录相关路由的模块,包含以下功能:

  • 用户UID获取: get_user_uid() - 从请求头中获取用户唯一标识
  • 路由注册函数: register_history_routes(app) - 注册所有历史记录相关的路由

包含的路由端点:

  1. GET /api/history - 获取生成历史记录

    • 支持用户筛选、日期筛选、评分筛选
    • 支持查询可用日期列表
    • 支持查看所有用户或当前用户的历史
  2. DELETE /api/history - 清空当前用户的历史记录

  3. POST /api/rating - 为图片评分

    • 支持评分值: -1(bad), 0(清除), 1-5(星级)
  4. DELETE /api/history/bad - 删除所有标记为Bad的图片

    • 同时删除数据库记录和物理文件
    • 支持按用户筛选

2. 修改文件: app.py

  • 移除的代码:

    • 删除了所有历史记录相关的路由函数
    • 删除了 get_user_uid() 函数(已移至 history_routes.py
  • 新增的导入:

    from history_routes import register_history_routes
  • 新增的路由注册:

    # 注册历史记录相关路由
    register_history_routes(app)
  • 简化的数据库导入: 只保留必要的数据库函数导入:

    from database import (
        add_history_record,
        migrate_from_json,
        get_history_count
    )

优势

1. 代码组织更清晰

  • 历史记录相关功能集中管理
  • app.py 专注于核心图片生成功能
  • 各模块职责分明

2. 可维护性提升

  • 修改历史记录功能只需关注 history_routes.py
  • 减少单个文件的代码量(app.py 从 757 行减少到约 500 行)
  • 更容易定位和修复问题

3. 可扩展性增强

  • 可以轻松添加新的历史记录相关功能
  • 模块化设计便于单元测试
  • 未来可以进一步拆分其他功能模块

4. 代码复用

  • register_history_routes() 函数可以在多个应用中复用
  • 路由处理逻辑独立,便于移植

测试验证

创建了 test_refactored_routes.py 测试脚本,验证了以下功能:

  • ✅ 添加历史记录
  • ✅ 获取历史记录
  • ✅ 评分功能
  • ✅ 日期查询

所有测试均通过,证明重构后的代码功能正常。

注意事项

  1. 向后兼容: 所有API端点保持不变,前端无需修改
  2. 功能完整: 所有原有功能都已迁移,没有功能丢失
  3. 性能影响: 无性能影响,只是代码组织结构变化
  4. 依赖关系: history_routes.py 依赖于 database.py 提供的数据访问函数

文件结构

drawThingsWebUI/
├── app.py                    # 主应用文件(已简化)
├── history_routes.py         # 历史记录路由模块(新增)
├── database.py               # 数据库操作模块(不变)
├── test_refactored_routes.py # 重构测试脚本(新增)
└── ...

后续建议

  1. 可以考虑将其他功能也进行类似拆分,如:

    • 配置管理路由 (config_routes.py)
    • 图片生成路由 (generation_routes.py)
    • 状态查询路由 (status_routes.py)
  2. 可以为每个模块编写更完善的单元测试

  3. 考虑添加路由文档自动生成