docs+tests: P8 测试与文档(CHANGELOG/CONTRIBUTING + 补充单测)

- CHANGELOG.md / CONTRIBUTING.md
- 新增 exceptions / case_converter 单元测试
- pytest 12 → 22 passed;全项目 flake8 0

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
DjangoAdmin Dev
2026-08-07 19:53:01 +08:00
co-authored by Claude
parent 8937799973
commit d45b61d808
5 changed files with 173 additions and 1 deletions
+60
View File
@@ -0,0 +1,60 @@
# 贡献指南
欢迎参与 DjangoAdmin Flask+EleVue 的开发。请遵循以下规范。
## 开发环境
```bash
# 1. 安装开发依赖(含生产依赖)
python -m venv .venv
.venv/Scripts/activate # Windows
# source .venv/bin/activate # Linux/macOS
pip install -r requirements-dev.txt
# 2. 复制并配置环境变量
cp .env.example .env
# 3. 安装 pre-commit 钩子
pre-commit install
```
## 代码规范
项目强制 `flake8` 零告警(与 black/isort 配置协同)。
```bash
make lint # flake8 + black --check + isort --check
make format # black + isort 自动格式化
make type-check # mypy
```
## 新增业务模块
遵循 **View(router) → Service → Repository → Model** 四层:
1. `src/modules/<domain>/<name>/models.py` — 继承 `BaseModel` + `BaseDB`
2. `src/modules/<domain>/<name>/repository.py` — 继承 `BaseRepository`
3. `src/modules/<domain>/<name>/service.py` — 业务逻辑(**入参数据/出参数据**,失败 `raise BizError`,不读 `request`)
4. `src/modules/<domain>/<name>/schema.py` — WTForms 验证表单(继承 `BaseForm`)
5. `src/modules/<domain>/<name>/router.py` — 路由(取参 + 包 R + `@check_permission`)
6. `src/routes/v1.py` — 将蓝图加入 `BLUEPRINTS` 列表(挂载 `/api/v1`)
## 测试
```bash
make test # pytest
make test-cov # 覆盖率
```
单元测试放置于 `tests/unit/`,集成测试放置于 `tests/integration/`。
## 提交规范
- 提交信息使用 `type: 描述` 前缀(feat/fix/refactor/chore/docs)
- 每阶段独立提交,便于回滚
- pre-commit 钩子会自动执行格式检查
## 文档
- 架构与规范见 `CLAUDE.md` 与 `重构方案-v2.md`
- API 变更需同步 `USAGE.md` 与 `CHANGELOG.md`