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}"}

 

三,测试效果 :

image

 

posted @ 2026-06-10 15:19  刘宏缔的架构森林  阅读(6)  评论(0)    收藏  举报