- 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 - Header 参数
- FastAPI - 响应模型
- FastAPI - 嵌套模型
- FastAPI - 依赖项
- FastAPI - CORS
- FastAPI - CRUD 操作
- FastAPI - SQL 数据库
- FastAPI - 使用 MongoDB
- FastAPI - 使用 GraphQL
- FastAPI - Websockets
- FastAPI - FastAPI 事件处理程序
- FastAPI - 挂载子应用
- FastAPI - 中间件
- FastAPI - 挂载 Flast 应用程序
- FastAPI - 部署
- FastAPI 实用资源
- FastAPI - 快速指南
- FastAPI - 实用资源
- FastAPI - 讨论
FastAPI - 嵌套模型
**Pydantic** 模型的每个属性都具有一种类型。该类型可以是 Python 内置类型,也可以是模型本身。因此,可以声明具有特定属性名称、类型和验证的嵌套 JSON“对象”。
示例
在以下示例中,我们构建一个客户模型,其中一个属性为产品模型类。产品模型又具有供应商类属性。
from typing import Tuple from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class supplier(BaseModel): supplierID:int supplierName:str class product(BaseModel): productID:int prodname:str price:int supp:supplier class customer(BaseModel): custID:int custname:str prod:Tuple[product]
以下 POST 操作装饰器将客户模型的对象呈现为服务器响应。
@app.post('/invoice') async def getInvoice(c1:customer): return c1
swagger UI 页面显示存在三个模式,对应于三个 BaseModel 类。
Customer 模式在展开以显示所有节点的情况下如下所示 -
**"/invoice"** 路由的一个示例响应如下 -
{ "custID": 1, "custname": "Jay", "prod": [ { "productID": 1, "prodname": "LAPTOP", "price": 40000, "supp": { "supplierID": 1, "supplierName": "Dell" } } ] }
广告