Yazılım Geliştirme
1 dakika okuma
Pydantic Nedir? Python ile Veri Doğrulama ve FastAPI Entegrasyonu
Pydantic nedir, Python'da tip tabanlı veri doğrulama nasıl yapılır? FastAPI ile entegrasyonu, validator'lar ve pratik model örnekleriyle.
E
Emre Cihan Pydantic Nedir
Python type hint tabanli veri dogrulama kutuphanesi. FastAPI'nin omurgasini olusturur.
Kurulum
pip install pydantic
Temel Model
from pydantic import BaseModel, EmailStr, field_validator
from typing import Optional
from datetime import datetime
class Kullanici(BaseModel):
id: int
email: EmailStr
ad: str
yas: Optional[int] = None
olusturulma: datetime = datetime.now()
@field_validator('yas')
@classmethod
def yas_kontrol(cls, v):
if v is not None and (v < 0 or v > 150):
raise ValueError('Gecersiz yas')
return v
@field_validator('ad')
@classmethod
def ad_temizle(cls, v):
return v.strip().title()
# Kullanim
try:
k = Kullanici(id=1, email='emre@test.com', ad=' emre ', yas=30)
print(k.ad) # 'Emre'
print(k.model_dump())
except ValueError as e:
print(f'Hata: {e}')
Ic Ice Modeller
class Adres(BaseModel):
sehir: str
ulke: str = 'TR'
posta_kodu: Optional[str] = None
class Kullanici(BaseModel):
ad: str
adres: Adres
telefon: list[str] = []
k = Kullanici(
ad='Emre',
adres={'sehir': 'Istanbul', 'posta_kodu': '34000'},
telefon=['0555 123 4567']
)
print(k.adres.sehir) # Istanbul
JSON Seri/Deseri
json_str = k.model_dump_json()
k2 = Kullanici.model_validate_json(json_str)
# Dict'ten
k3 = Kullanici.model_validate({'ad': 'Ali', 'adres': {'sehir': 'Ankara'}})
Settings Modeli
from pydantic_settings import BaseSettings
class Ayarlar(BaseSettings):
db_url: str
secret_key: str
debug: bool = False
class Config:
env_file = '.env'
ayarlar = Ayarlar() # .env dosyasından otomatik okur
Pydantic v2, Rust tabanlı core sayesinde cok hizli dogrulama sunar.
Paylaş:
Twitter / X
E
Emre Cihan
Sistem Yöneticisi · Maker · Elektronik Meraklısı
İlgili yazılar