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
· · 30 görüntüleme

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

Yazılım Geliştirme
Python mu JavaScript mi? Hangisini Öğrenmelisin?
1 dk
Yazılım Geliştirme
Programlama Öğrenmek İçin Matematik Bilmek Gerekir mi?
1 dk
Yazılım Geliştirme
Yazılımcı Olmak İçin Üniversite Şart mı?
1 dk
Yazılım Geliştirme
2026'da En Çok Kazandıran Yazılım Alanları
1 dk