CodeBlanks Logo Icon CodeBlanks

BaseModel

pydantic.BaseModel ile model tanımlamayı öğrenirsin.

BaseModel

pydantic.BaseModel, veri modellerinin temel sınıfıdır. Bir sınıf türetir, alanlara tür verirsin; Pydantic veriyi otomatik doğrular ve türe çevirir.

from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int

u = User(name="Ayşe", age=30)
print(u.name, u.age)  # Ayşe 30

Yanlış tür verirsen Pydantic hatası alırsın. Modeli bir sözükten de oluşturabilirsin; eksik alan yine hata verir.

alan ve tür

Her alan bir tür ile tanımlanır: str, int, float, bool, list gibi. Pydantic veriyi bu türe çevirmeye çalışır; başaramazsa hata verir.

class User(BaseModel):
    name: str
    age: int
    active: bool

u = User(name="Ayşe", age="30", active=True)
print(u.age)  # 30 (int'e çevrildi)

Bu özellik, veri kaynağı güvenilmediğinde yararlıdır; örneğin bir formdan gelen dizeler otomatik tamsayıya çevrilir.

Uygulama User modeli oluştur

from pydantic import BaseModel ile başla. class User(BaseModel): tanımla; name: str ve age: int alanlarını ekle. u = User(name="Ayşe", age=30) ile bir örnek oluştur. print(u.name, u.age) ile değerleri yazdır.

Başlangıç kodu

main.py
# pydantic'den BaseModel'i içe aktar
# User sınıfını tanımla (BaseModel'den türe, name ve age alanları)
# bir User örneği oluştur (Ayşe, 30)
# name ve age değerlerini yazdır

Örnek çözüm

main.py
from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int

u = User(name="Ayşe", age=30)
print(u.name, u.age)

Beklenen çıktı

Ayşe 30

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 BaseModel türetilen bir modelde eksik alan verirsen ne olur?

  • Alan None olur
  • Hata fırlatılır Doğru cevap
  • Alan boş dize olur
  • Uyarı verilir ama devam eder

Açıklama: Zorunlu alan eksikse Pydantic hatası fırlatılır.

2 BaseModel türetmesini tamamla

Soru
from pydantic import BaseModel

class User(____):
    name: str
    age: int
Cevap
from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int

Açıklama: class User(BaseModel) ile model tanımlanır.

3 BaseModel kavramlarını eşleştir

Kavram Anlamı
BaseModel Temel sınıftır
name: str Alan tanımıdır
User(name=, age=) Örnek oluşturur
u.name Alan değeridir

İleri seviye bölümündeki tüm dersler