首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pydantic模式逻辑

Pydantic模式逻辑
EN

Stack Overflow用户
提问于 2022-09-10 17:54:48
回答 1查看 98关注 0票数 1

因此,我正在构建一个API来与我的个人葡萄酒标签集合数据库进行交互。就我所理解的而言,pydantic模型的目的是作为发送到API的模式的“验证器”。因此,我添加标签的pydantic模式如下:

代码语言:javascript
复制
from pydantic import BaseModel
from typing import Optional

class WineLabels(BaseModel):
    name: Optional[str]
    type: Optional[str]
    year = Optional[int]
    grapes = Optional[str]
    country = Optional[str]
    region = Optional[str]
    price = Optional[float]
    id = Optional[str]

所有字段都不会自动更新。这等于sqlalchemy模型,因为我想手动添加所有字段。

所以我的问题是,假设我想创建一个按ID搜索的调用,另一个按名称进行搜索。我不认为应该应用这些模式。我应该创建另一个模式吗?我应该创造这样一个吗?:

代码语言:javascript
复制
class SearchWineLabel(WineLabels):
      id: str

是否应该为已经存在的模式无法实现的每个目的创建模式?

抱歉,但我不明白背后的逻辑。谢谢!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-11 18:51:40

如果您想按id或name进行搜索,我不确定您是否需要一个模式--在这些情况下,一个或多个get参数通常就足够了(而且通常在语义上更好)。

在任何情况下,架构都是为端点预期接收的内容编写的,而不是使用以其他方式包含字段的通用模式。将模式看作给定资源和端点的输入/输出定义。

您通常希望有不同的模式来进行添加和更新(因为添加将要求存在某些字段,而更新可能允许空字段或任何位置缺少的字段)。

Pydantic模式允许您在不编写代码的情况下表达这些差异,并且它将反映在/docs下生成的api文档中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73674063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档