5. FastAPI 开发 POST 请求体字段处理

前言

请求体是客户端发送给 API 的数据,GET 请求不能发送请求体,
常见的发送请求体的请求方法:

  • POST
  • PUT
  • DELETE
  • PATCH

下面使用 POST 请求发送请求体,

定义请求体,需要使用 Pydantic 模型。

从 pydantic 中导入 BaseModel 模型

import BaseModel from pydantic

创建数据类型,声明数据模型为一个类,且该类继承 BaseModel

class Item(BaseModel):
    name: str
    description: Optional[str] = Field(
        None, title="这是描述", max_length=300
    )
    price: float = Field(..., gt=0, description="价格大于0")
    tax: Optional[float] = None
    sales: list = []
    """
    :param name: 书本名称
    :param description: 描述
    :param tax: 税费
    :param sales: 销售地
    """

完整代码:

# coding:utf-8
from typing import Optional
from fastapi import Body, FastAPI
from pydantic import BaseModel, Field
import uvicorn
app = FastAPI()


class Item(BaseModel):
    name: str
    description: Optional[str] = Field(
        None, title="这是描述", max_length=300
    )
    price: float = Field(..., gt=0, description="价格大于0")
    tax: Optional[float] = None
    sales: list = []
    """
    :param name: 书本名称
    :param description: 描述
    :param tax: 税费
    :param sales: 销售地
    """


@app.post("/book/{itemid}")
def post_items(itemid: int, item: Item = Body(..., embed=True)):
    results = {"id": itemid, "item": item}
    return results


if __name__ == '__main__':
    uvicorn.run(app='demo003:app', host="127.0.0.1", port=8000, reload=True, debug=True)


使用 PostMan 进行接口调试:

posted @   西瓜_皮  阅读(742)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示