什么是身体?`从 fastapi 导入正文`

use*_*451 5 python python-3.x fastapi

文档和其他地方我见过Body使用但不知道它是什么。

谁能解释一下这三个选项的含义?

from fastapi import Body
from pydantic import BaseModel

class MyModel(BaseModel):
    body1: None
    body2: Body(None)
    body3: Body(...)
Run Code Online (Sandbox Code Playgroud)

Seb*_*rez 3

当您使用 Pydantic 模型时,您不需要使用Body.

你可以写:

from pydantic import BaseModel, Schema

class MyModel(BaseModel):
    body1: None
    body2: Schema(None)
    body3: Schema(...)
Run Code Online (Sandbox Code Playgroud)

Body仅当您需要强制 FastAPI 理解参数作为主体的一部分接收时(例如,而不是查询参数),才在路径操作参数中使用。Body仅当使用“单一”类型(单个值,如int, )的参数时才需要显式使用str。如果您使用 Pydantic 模型、列表或类似的东西作为类型,则不需要Body显式使用。

Body如果需要,您还可以添加额外的元数据。比如标题、例子等。

在文档中阅读更多相关信息: https: //fastapi.tiangolo.com/tutorial/body/

  • 好的 - 看起来上面显示的唯一区别是“embed”和“media_type”的存在......非常酷。这些对于 Pydantic 来说是不必要或不相关的。谢谢! (2认同)