- FastAPI 教程
- FastAPI - 首页
- FastAPI - 简介
- FastAPI - Hello World
- FastAPI - OpenAPI
- FastAPI - Uvicorn
- FastAPI - 类型提示
- FastAPI - IDE 支持
- FastAPI - REST 架构
- FastAPI - 路径参数
- FastAPI - 查询参数
- FastAPI - 参数验证
- FastAPI - Pydantic
- FastAPI - 请求体
- FastAPI - 模板
- FastAPI - 静态文件
- FastAPI - HTML 表单模板
- FastAPI - 访问表单数据
- FastAPI - 上传文件
- FastAPI - Cookie 参数
- FastAPI - 头部参数
- FastAPI - 响应模型
- FastAPI - 嵌套模型
- FastAPI - 依赖项
- FastAPI - CORS
- FastAPI - CRUD 操作
- FastAPI - SQL 数据库
- FastAPI - 使用 MongoDB
- FastAPI - 使用 GraphQL
- FastAPI - Websockets
- FastAPI - FastAPI 事件处理器
- FastAPI - 挂载子应用
- FastAPI - 中间件
- FastAPI - 挂载 Flask 应用
- FastAPI - 部署
- FastAPI 有用资源
- FastAPI - 快速指南
- FastAPI - 有用资源
- FastAPI - 讨论
FastAPI - 响应模型
一个操作函数返回一个 JSON 响应给客户端。响应可以是 Python 基本类型,例如数字、字符串、列表或字典等。它也可以是 Pydantic 模型的形式。为了使函数返回模型对象,操作装饰器应该声明一个 **response_model** 参数。
借助 response_model,FastAPI 将输出数据转换为模型类的结构。它验证数据,并在 OpenAPI 路径操作中添加 JSON Schema 以进行响应。
response_model 参数的一个重要优势是,我们可以通过从模型中选择字段来格式化输出,将响应转换为输出模型。
示例
在下面的示例中,POST 操作装饰器以 student 类(BaseModel 的子类)的对象形式接收请求体。由于此类中的一个字段,即 marks(分数列表)在响应中不需要,因此我们定义了另一个名为 percent 的模型,并将其用作 response_model 参数。
from typing import List from fastapi import FastAPI from pydantic import BaseModel, Field app = FastAPI() class student(BaseModel): id: int name :str = Field(None, title="name of student", max_length=10) marks: List[int] = [] percent_marks: float class percent(BaseModel): id:int name :str = Field(None, title="name of student", max_length=10) percent_marks: float @app.post("/marks", response_model=percent) async def get_percent(s1:student): s1.percent_marks=sum(s1.marks)/2 return s1
如果我们检查 Swagger 文档,它会显示“/marks”路由获取 student 类对象作为请求体。用适当的值填充属性并执行 **get_percent()** 函数。
服务器响应被转换为 percent 类,因为它已被用作 response_model。
广告