有什么方法可以做到以下几点吗?
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel
class Item(BaseModel):
id: str
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None
app = FastAPI()
@app.post("/items/{item_id}")
async def create_item(item: Item):
return item
我想在 Item
模型中使用 item_id
路径参数值。
这可能吗?
最佳答案
FastAPI 中的 Pydantic 用于定义数据模型。你可以这样做:
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel
class Item(BaseModel):
id: Optional[str] = None
name: str
description: Optional[str] = None
price: float
tax: Optional[float] = None
app = FastAPI()
@app.post("/items/{item_id}")
async def create_item(item_id, item: Item):
item.id = item_id
return item
请注意,id
被声明为可选的,以避免请求中正文参数的验证问题。实际上,您不会在正文中而是在路径中传递 id
。
如有必要,您还可以将请求与响应模型分离(参见 here )。这取决于您的需求。
https://stackoverflow.com/questions/69915232/
相关文章:
android - 加载 flutter 时去除图像中的白色闪烁
json - 通过 Postman 使用 PUT 请求更新 Contentful 帖子
node.js - 在不使用 NVM for Windows 的情况下在 Windows 上安装多个
jooq - jooq record 取数据时是否使用列索引?
amazon-web-services - AWS CodePipeline 角色无权在阶段的 "a
angular - 检测关闭浏览器 Angular 12 的事件
networking - float IP 在 Digital Ocean 上的使用