FastApi-04-请求体-1

简介: FastApi-04-请求体-1

何为请求体


顾名思义,请求体就是在请求过程中客户端携带的数据。


请求体不是一定要携带的,而且请求体不建议用 GET 请求发送,通常我们会使用 POST 请求发送请求体,当然是用 PUT、DELETE、PATCH 方式也可以发送请求体。


举个栗子


根据请求体做相应的响应,如下返回请求体内容。


FastApi 的请求体需要为 dict 格式


代码


@app.post('/models/')
async def add_model(model:str):
    return model
复制代码


接口测试


正常情况


网络异常,图片无法展示
|


异常情况


网络异常,图片无法展示
|


FastApi 会帮助我们进行类型检测,基本格式校验等


请求体校验


通常,我们在开发的时候,需要用户根据特定的结构体来发起请求,从而防止攻击和过滤用户。


FastApi 的数据模型


FastApi 中,我们可以借助 pydanticBaseModel 类来实现请求结构体的定义。


代码


from pydantic import BaseModel
class Mds(BaseModel):
    name: str
    age: int
    home: str
@app.post('/models/')
async def add_model(model:Mds):
    return model
复制代码


接口测试


正常情况


网络异常,图片无法展示
|


异常情况


网络异常,图片无法展示
|


对于错误的,缺失的结构体字段,FastApi 都会帮我们检测处理。


可选字段


FastApi 的可选字段有以下两种场景

  1. 字段有默认值时
  2. 字段类型为 Optional


代码


from pydantic import BaseModel
from typing import Optional
class Mds(BaseModel):
    name: str
    age: int = 18
    home: str
    height: Optional[str]
@app.post('/models/')
async def add_model(model:Mds):
    return model
复制代码


接口测试


只携带必选参数


网络异常,图片无法展示
|


携带全部参数


网络异常,图片无法展示
|


携带多余参数(多余参数会被忽略)


网络异常,图片无法展示
|


缺少必选参数


网络异常,图片无法展示
|


结论


请求结构体的字段,可以多,不可缺少必选的。


请求体使用


我们在视图函数内部可以直接使用请求体的属性。


代码


from pydantic import BaseModel
from typing import Optional
class Mds(BaseModel):
    name: str
    age: int = 18
    home: str
    height: Optional[str]
@app.post('/models/')
async def add_model(Mds:Mds):
    ret = {}
    if Mds.name:
        ret.update({"Name":Mds.name})
    if Mds.height:
        ret.update({"height":Mds.height})
    return ret
复制代码


接口测试


网络异常,图片无法展示
|


感谢您的阅读,别忘了关注,点赞,评论,转发四连哟!

相关文章
|
17天前
|
JSON API 数据安全/隐私保护
如何使用Fastapi上传文件?先从请求体数据讲起
如何使用Fastapi上传文件?先从请求体数据讲起
|
JSON IDE API
FastAPI(8)- 请求体 Request Body (下)
FastAPI(8)- 请求体 Request Body (下)
256 0
FastAPI(8)- 请求体 Request Body (下)
|
XML JSON JavaScript
FastApi-06-请求体-3
FastApi-06-请求体-3
126 0
|
JSON API 数据格式
FastAPI(8)- 请求体 Request Body (上)
FastAPI(8)- 请求体 Request Body (上)
582 0
FastAPI(8)- 请求体 Request Body (上)
|
存储 开发框架 JSON
FastAPI 学习之路(二十一)请求体 - 更新数据
FastAPI 学习之路(二十一)请求体 - 更新数据
FastAPI 学习之路(二十一)请求体 - 更新数据
|
开发框架
FastAPI 学习之路(十一)请求体 - 嵌套模型
FastAPI 学习之路(十一)请求体 - 嵌套模型
FastAPI 学习之路(十一)请求体 - 嵌套模型
|
JSON 数据格式
FastAPI 学习之路(十)请求体的字段(下)
FastAPI 学习之路(十)请求体的字段(下)
FastAPI 学习之路(十)请求体的字段(下)
|
开发框架
FastAPI 学习之路(十)请求体的字段(上)
FastAPI 学习之路(十)请求体的字段(上)
FastAPI 学习之路(十)请求体的字段(上)
|
开发框架
FastAPI 学习之路(九)请求体有多个参数如何处理?
FastAPI 学习之路(九)请求体有多个参数如何处理?
FastAPI 学习之路(九)请求体有多个参数如何处理?