fastapi: 第六章: 接收参数:请求体json
一,什么是json请求体?
当客户端需要向服务器提交大量数据(如创建用户、发布文章)时,通常会使用请求体。
请求体放在HTTP请求的Body中,不像URL有长度限制。
为什么需要请求体?
查询参数适合传递少量简单数据,但如果你要提交一个包含用户名、邮箱、密码、年龄、地址等多个字段的用户信息,放在URL里显然不合适。这时候就需要使用请求体。
FastAPI使用Pydantic来定义和验证请求体的数据结构:
它的优点:你不需要手动解析JSON、不需要写各种校验代码。
如果客户端发送的数据格式不对(比如age传了字符串"十八"而不是数字),FastAPI会自动返回清晰的错误信息。
二,代码
# api/auth.py
from fastapi import APIRouter, Form
from pydantic import BaseModel
router = APIRouter(prefix="/account", tags=["登录验证"])
# 1. 定义数据模型(定义 JSON 的结构)
class UserItem(BaseModel):
user_id: int
user_name: str
email: str | None = None # 可选参数,默认为 None
@router.post("/save")
def save_info(user: UserItem):
return {"data": user, "id": user.user_id, "name": f"用户{user.user_name}"}
三,测试效果 :

浙公网安备 33010602011771号