Initial TodoList MySQL delivery

This commit is contained in:
2026-07-16 15:42:31 +08:00
commit fb0a53676f
11 changed files with 723 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
# 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 局域网地址已成功打开前端。
- 页面新增、修改、完成状态、删除及刷新持久化链路已完成联调。
## 当前运行链路
```text
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 端口转发和防火墙规则属于当前机器的基础设施配置,未作为通用部署脚本放入本交付包。