后端 FastAPI 六层结构(api/services/repositories/models/schemas/core), 统一响应信封、全局异常、日志脱敏;6 张表经 Alembic 迁移建库,SQL 留存 db/migration;登录鉴权含图形验证码(Redis GETDEL 防重放)、JWT、登录限流、 登出黑名单(TTL=令牌剩余有效期)、登录日志。 前端 Vue3 + TS + Element Plus 骨架,含登录页、路由守卫、请求封装与 Vite 代理。 工程配置:uv 锁定 Python 3.12、ruff 检查与格式化、editorconfig、gitattributes。 测试 184 项(单元 155 / 集成 29)全绿,浏览器端到端 8 项通过。 Co-Authored-By: Claude Code <noreply@anthropic.com>
27 lines
749 B
Python
27 lines
749 B
Python
"""ORM 模型层:只做表结构映射。
|
||
|
||
分层约束:
|
||
- 不含业务逻辑
|
||
- 不得被 `api/` 层直接使用 —— ORM 对象必须经 `schemas/` 转换后才能出参,
|
||
否则表结构变更会直接泄漏到接口契约上
|
||
|
||
**本模块的导入列表必须保持完整**:Alembic autogenerate 依赖
|
||
`Base.metadata` 包含全部表,漏掉一张就会生成「删除该表」的迁移。
|
||
"""
|
||
|
||
from app.models.base import Base, TimestampMixin
|
||
from app.models.login_log import LoginLog
|
||
from app.models.role import Permission, Role, RolePermission
|
||
from app.models.user import User, UserRole
|
||
|
||
__all__ = [
|
||
"Base",
|
||
"LoginLog",
|
||
"Permission",
|
||
"Role",
|
||
"RolePermission",
|
||
"TimestampMixin",
|
||
"User",
|
||
"UserRole",
|
||
]
|