一个可直接扩展的 FastAPI 后端项目,包含异步数据库、JWT 鉴权、用户 CRUD、迁移、测试、Docker、日志和 CI。
python3.13 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
cp .env.example .env
# 将 .env 中 DATABASE_URL 改为 sqlite+aiosqlite:///./app.db
alembic upgrade head
uvicorn app.main:app --reload打开:
- Swagger 文档:http://127.0.0.1:8000/docs
- 健康检查:http://127.0.0.1:8000/health
cp .env.example .env
docker compose up --buildmake test
make lint
make format
make migration m="add orders"
make migratePOST /api/v1/auth/register注册POST /api/v1/auth/login登录(OAuth2 form:username 填邮箱)GET /api/v1/users/me当前用户GET /api/v1/users用户列表(管理员)PATCH /api/v1/users/{id}修改用户(本人或管理员)DELETE /api/v1/users/{id}删除用户(管理员)
首个注册用户会自动成为管理员,方便初始化系统。
app/
├── api/ # HTTP 路由与依赖
├── core/ # 配置、安全、日志
├── db/ # 数据库会话与基类
├── models/ # SQLAlchemy 模型
├── repositories/ # 数据访问
├── schemas/ # 请求/响应 DTO
└── services/ # 业务逻辑
生产部署前务必更换 JWT_SECRET,限制 CORS_ORIGINS,并在反向代理层启用 HTTPS。