Body - Fields


Body - Fields

和路径操作函数 QueryPathBody 一样,可以在 Pydantic 模型中使用 Field 添加验证信息和元信息

Import Field

from fastapi import Body, FastAPI
from pydantic import BaseModel, Field

app = FastAPI()


class Item(BaseModel):
    name: str
    description: str = Field(None, title="The description of the item", max_length=300)
    price: float = Field(..., gt=0, description="The price must be greater than zero")
    tax: float = None


@app.put("/items/{item_id}")
async def update_item(*, item_id: int, item: Item = Body(..., embed=True)):
    results = {"item_id": item_id, "item": item}
    return results

注意:Field 参数直接由 pydantic导入,而不是来自 FastAPI

提示: Field 提供和 Query 等一样的 api

技术细节:

  • QueryPath 等都会创建 Param 子类的实例,而 Param 又继承于 pydanticFieldInfo

  • Field 也会返回 FieldInfo 的实例

  • Body 也会返回 FieldInfo 子类的实例,包括 Body 的子类等

  • fastapi 导入的 QueryPath 等等都是返回特殊类的函数


文章作者: qiufeng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 qiufeng !
评论
 上一篇
Body - Multiple Parameters Body - Multiple Parameters
Mix Path, Query and body parameters我们可以自由的混合 Path 和 Query 和 request body,FastAPI 知道如何自动处理 request body 参数也是可选的 from fast
2020-04-13
下一篇 
algorithm compressive algorithm compressive
概述 二分法最好情形比较 $1$ 次,最坏 $\lfloor \log n \rfloor +1$ 合并排序的比较次数 $min(n_1,n_2) \sim n_1+n_2-1$ 选择排序比较次数恒为 $\frac{n(n-1)}{2}$
2020-04-13
  目录