ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

FastAPI基础之 模型的额外信息-示例

2021-03-30 17:55:27  阅读:197  来源: 互联网

标签:额外 示例 FastAPI example item Item import Optional id


  1、Pydantic schema_extra

  您可以使用 Config 和 schema_extra 为Pydantic模型声明一个示例,如Pydantic 文档:定制 Schema 中所述:

  from typing import Optional

  from fastapi import FastAPI

  from pydantic import BaseModel

  app = FastAPI()

  class Item(BaseModel):

  name: str

  description: Optional[str] = None

  price: float

  tax: Optional[float] = None

  class Config:

  schema_extra = {

  "example": {

  "name": "Foo",

  "description": "A very nice Item",

  "price": 35.4,

  "tax": 3.2,

  }

  }

  @app.put("/items/{item_id}")

  async def update_item(item_id: int, item: Item):

  results = {"item_id": item_id, "item": item}

  return results

  这些额外的信息将按原样添加到输出的JSON模式中。

  2、Field 的附加参数

  在 Field, Path, Query, Body 和其他你之后将会看到的工厂函数,你可以为JSON 模式声明额外信息,你也可以通过给工厂函数传递其他的任意参数来给JSON 模式声明额外信息,比如增加 example:

  from typing import Optional

  from fastapi import FastAPI

  from pydantic import BaseModel, Field

  app = FastAPI()

  class Item(BaseModel):

  name: str = Field(..., example="Foo")

  description: Optional[str] = Field(None, example="A very nice Item")

  price: float = Field(..., example=35.4)

  tax: Optional[float] = Field(None, example=3.2)

  @app.put("/items/{item_id}")

  async def update_item(item_id: int, item: Item):

  results = {"item_id": item_id, "item": item}

  return results

  Warning

  请记住,传递的那些额外参数不会添加任何验证,只会添加注释,用于文档的目的。

  3、Body 额外参数大连妇科医院哪家好 http://mobile.84211111.cn/

  你可以通过传递额外信息给 Field 同样的方式操作Path, Query, Body等。

  比如,你可以将请求体的一个 example 传递给 Body:

  from typing import Optional

  from fastapi import Body, FastAPI

  from pydantic import BaseModel

  app = FastAPI()

  class Item(BaseModel):

  name: str

  description: Optional[str] = None

  price: float

  tax: Optional[float] = None

  @app.put("/items/{item_id}")

  async def update_item(

  item_id: int,

  item: Item = Body(

  ...,

  example={

  "name": "Foo",

  "description": "A very nice Item",

  "price": 35.4,

  "tax": 3.2,

  },

  ),

  ):

  results = {"item_id": item_id, "item": item}

  return results

标签:额外,示例,FastAPI,example,item,Item,import,Optional,id
来源: https://blog.51cto.com/14503791/2677609

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有