fastapi post方法如何接受参数
在FastAPI中,可以通过在路由函数的参数中声明需要接受的参数来实现接收Post请求的参数。
以下是一个示例:
from fastapi import FastAPI
app = FastAPI()
@app.post("/items/")
async def create_item(item: Item):
# item 是一个参数,用于接收请求的主体作为 JSON
return item
在上述示例中,我们在路由函数的参数中声明了一个item参数,并指定了其类型为Item。这样,在接收到Post请求时,FastAPI会自动解析请求的主体作为JSON,并将其转换为Item对象。
需要注意的是,Item是一个自定义的数据模型,可以通过Pydantic库定义。例如:
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
在上述示例中,我们定义了一个名为Item的数据模型,并声明了两个字段:name和price。这样,当接收到Post请求时,FastAPI会自动将请求的主体作为JSON解析,并将其转换为Item对象,其中name字段的值将赋给item.name,price字段的值将赋给item.price。
此外,如果想要接收其他的参数,可以通过在路由函数的参数中声明它们。例如,如果想要接收一个路径参数,可以在路由函数的参数中声明一个名为item_id的参数:
@app.post("/items/{item_id}")
async def create_item(item_id: int, item: Item):
# item_id 是一个路径参数,item 是一个请求主体作为 JSON
return {"item_id": item_id, "item": item}
在上述示例中,我们在路由函数的参数中声明了一个item_id参数,并指定了其类型为int。这样,在接收到Post请求时,FastAPI会自动解析路径中的item_id值,并将其赋给item_id参数。
综上所述,通过在路由函数的参数中声明需要接收的参数,并指定其类型,就可以实现在FastAPI中接收Post请求的参数
原文地址: https://www.cveoy.top/t/topic/iYwl 著作权归作者所有。请勿转载和采集!