Trung BìnhPython iconPython

Pydantic v2 — những thay đổi lớn so với v1?

FastAPI 0.100+ dùng Pydantic v2 mặc định — nhanh hơn 5-50x nhờ Rust core.
Thay đổi chính:

python
# v1 → v2 migration

# 1. validator → field_validator
# v1:
@validator('email')
def validate_email(cls, v): ...

# v2:
from pydantic import field_validator
@field_validator('email')
@classmethod
def validate_email(cls, v: str) -> str: ...

# 2. orm_mode → model_config
# v1: class Config: orm_mode = True
# v2:
from pydantic import ConfigDict
class UserSchema(BaseModel):
    model_config = ConfigDict(from_attributes=True)

# 3. .dict() → .model_dump()
user.model_dump()
user.model_dump(exclude={'password'})

# 4. .json() → .model_dump_json()
user.model_dump_json()

# 5. parse_obj → model_validate
UserSchema.model_validate({"id": 1, "name": "Alice"})
UserSchema.model_validate(orm_object, from_attributes=True)

# 6. BaseSettings bị tách ra pydantic-settings package
from pydantic_settings import BaseSettings

Xem toàn bộ Python cùng filter theo level & chủ đề con.

Mở danh sách Python