Files

1.7 KiB

TodoList 交付验收记录

验收日期:2026-07-16

已完成

  • FastAPI 已从 todos.json 迁移到 MySQL 8.4。
  • MySQL 通过 Docker Compose 运行,数据保存在命名卷 mysql_data。
  • Python 使用 mysql-connector-python 执行原始 SQL。
  • 数据库连接配置从 .env 读取,代码中未写死密码。
  • INSERT、UPDATE、DELETE 使用参数化 SQL,并包含提交、回滚和资源关闭逻辑。
  • GET、POST、PATCH、DELETE 已通过本机接口测试。
  • 不存在的 Todo ID 已验证返回 404。
  • 响应模型已将 completion 统一输出为 JSON 布尔值。
  • Nginx /api 反向代理已通过测试。
  • Windows 局域网地址已成功打开前端。
  • 页面新增、修改、完成状态、删除及刷新持久化链路已完成联调。

当前运行链路

Windows 192.168.10.55:8080
  -> WSL Nginx :80
  -> FastAPI 127.0.0.1:8000
  -> MySQL 127.0.0.1:3306

未包含内容

  • 真实 .env 与数据库密码
  • Python .venv
  • MySQL Docker 数据卷
  • 旧 todos.json 数据及备份
  • 数据库连接测试脚本

已知限制与后续建议

  • 当前没有用户登录和权限控制。
  • 当前没有自动化测试。
  • 当前没有 Alembic 等数据库版本迁移工具。
  • 当前每次请求建立一次数据库连接,后续可学习连接池。
  • task 的数据库长度上限为 200;建议后续在 Pydantic 请求模型中增加长度和空字符串校验。
  • CORS 当前为宽松配置;正式部署时应限制允许的来源。
  • systemd 文件包含当前用户与项目绝对路径,换机器部署时必须调整。
  • Windows 端口转发和防火墙规则属于当前机器的基础设施配置,未作为通用部署脚本放入本交付包。