FastAPI 实战:打造高效的 CRUD 接口(增删改查优秀实践)
本文你将学到:
- 如何编写标准的增删改查接口
- 如何返回统一格式的响应
- 如何处理异常与不存在的数据
- 如何编写清晰可维护的代码结构
1. 项目结构一览(适用于多模块项目)
app/
├── api/
│ └── user.py # 用户接口
├── models/
│ └── user.py # ORM 数据模型
├── schemas/
│ └── user.py # Pydantic 请求 / 响应模型
├── core/
│ └── db.py # 数据库初始化
├── main.py # 项目入口
2. ORM 模型定义(models/user.py)
from tortoise.models import Model
from tortoise import fields
class User(Model):
id = fields.IntField(pk=True)
name = fields.CharField(max_length=50)
email = fields.CharField(max_length=100, unique=True)
class Meta:
table = "user"
3. 请求与响应模型(schemas/user.py)
from pydantic import BaseModel, EmailStr
classUserCreate(BaseModel):
name: str
email: EmailStr
classUserUpdate(BaseModel):
name: str | None = None
email: EmailStr | None = None
classUserOut(BaseModel):
id: int
name: str
email: EmailStr
classConfig:
orm_mode = True
4. CRUD 接口实现(api/user.py)
from fastapi import APIRouter, HTTPException
from app.models.user import User
from app.schemas.user import UserCreate, UserUpdate, UserOut
router = APIRouter(prefix="/users", tags=["用户"])
#