API & Backend
Pydantic v2 ile Rust Destekli Validasyon ve Custom Validator Teknikleri
Pydantic v2'nin Rust tabanlı pydantic-core çekirdeği ile 20 kata varan hız artışları, @field_validator ve model_validator kullanım desenleri.
3 dk
Pydantic v2'deki Kritik Değişiklikler
Eski `@validator` dekoratörü yerine `@field_validator(mode='before'|'after')` ve tüm modeli doğrulayan `@model_validator` gelmiştir.
schema.py
from pydantic import BaseModel, field_validator, model_validator
class UserRegisterSchema(BaseModel):
username: str
password: str
confirm_password: str
@field_validator("username")
@classmethod
def validate_username(cls, v: str) -> str:
if not v.isalnum():
raise ValueError("Kullanıcı adı sadece alfanümerik olmalıdır")
return v.lower()
@model_validator(mode="after")
def check_passwords_match(self) -> "UserRegisterSchema":
if self.password != self.confirm_password:
raise ValueError("Şifreler birbiriyle eşleşmiyor")
return self