pydantic-models-py
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePydantic Models
Pydantic 模型
Create Pydantic models following the multi-model pattern for clean API contracts.
遵循多模型模式创建Pydantic模型,以实现清晰的API契约。
Quick Start
快速开始
Copy the template from assets/template.py and replace placeholders:
- → PascalCase name (e.g.,
{{ResourceName}})Project - → snake_case name (e.g.,
{{resource_name}})project
从assets/template.py复制模板并替换占位符:
- → 大驼峰命名(例如:
{{ResourceName}})Project - → 蛇形命名(例如:
{{resource_name}})project
Multi-Model Pattern
多模型模式
| Model | Purpose |
|---|---|
| Common fields shared across models |
| Request body for creation (required fields) |
| Request body for updates (all optional) |
| API response with all fields |
| Database document with |
| 模型 | 用途 |
|---|---|
| 各模型共享的通用字段 |
| 创建请求的请求体(必填字段) |
| 更新请求的请求体(所有字段可选) |
| 包含所有字段的API响应 |
| 带有 |
camelCase Aliases
小驼峰别名
python
class MyModel(BaseModel):
workspace_id: str = Field(..., alias="workspaceId")
created_at: datetime = Field(..., alias="createdAt")
class Config:
populate_by_name = True # Accept both snake_case and camelCasepython
class MyModel(BaseModel):
workspace_id: str = Field(..., alias="workspaceId")
created_at: datetime = Field(..., alias="createdAt")
class Config:
populate_by_name = True # Accept both snake_case and camelCaseOptional Update Fields
可选更新字段
python
class MyUpdate(BaseModel):
"""All fields optional for PATCH requests."""
name: Optional[str] = Field(None, min_length=1)
description: Optional[str] = Nonepython
class MyUpdate(BaseModel):
"""All fields optional for PATCH requests."""
name: Optional[str] = Field(None, min_length=1)
description: Optional[str] = NoneDatabase Document
数据库文档
python
class MyInDB(MyResponse):
"""Adds doc_type for Cosmos DB queries."""
doc_type: str = "my_resource"python
class MyInDB(MyResponse):
"""Adds doc_type for Cosmos DB queries."""
doc_type: str = "my_resource"Integration Steps
集成步骤
- Create models in
src/backend/app/models/ - Export from
src/backend/app/models/__init__.py - Add corresponding TypeScript types
- 在目录下创建模型
src/backend/app/models/ - 从导出模型
src/backend/app/models/__init__.py - 添加对应的TypeScript类型