CodeBlanks Logo Icon CodeBlanks

Model tanımlama

declarative_base ile model tanımlamayı öğrenirsin.

Model tanımlama

SQLAlchemy'de modeller, declarative_base() ile oluşturulan temel sınıftan türetilir. Her model bir veritabanı tablosunu temsil eder; __tablename__ özniteliği tablo adını belirler.

from sqlalchemy.orm import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True)
    name = Column(String)

Model sınıfı, tablo yapısını Python sınıfı olarak tanımlar. Böylece SQL yazmadan tabloları oluşturursun.

__tablename__ özniteliği

Her model sınıfında __tablename__ özniteliği bir dize olarak tablo adını belirler. Bu, veritabanındaki gerçek tablonun adıdır.

class Product(Base):
    __tablename__ = "products"
    # sütunlar...

Tablo adları genellikle çoğul ve küçük harfle yazılır (ör. users, products). Model sınıfı ise tekil ve büyük harfle başlar (ör. User, Product).

Uygulama User modeli tanımla

from sqlalchemy import create_engine, Column, Integer, String ve from sqlalchemy.orm import declarative_base ile başla. Base = declarative_base() tanımla. class User(Base): içinde __tablename__ = "users" ekle. id = Column(Integer, primary_key=True) ve name = Column(String) sütunlarını ekle. print(User.__tablename__) ile tablo adını yazdır.

Başlangıç kodu

main.py
# sqlalchemyden create_engine, Column, Integer, String'i içe aktar
# declarative_base'i içe aktar
# Base'i tanımla
# User sınıfını tanımla (Base'ten türe, tablo adı 'users')
# id ve name sütunlarını ekle
# User.__tablename__ değerini yazdır

Örnek çözüm

main.py
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True)
    name = Column(String)

print(User.__tablename__)

Beklenen çıktı

users

Soru ve cevaplar

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

1 Model kavramlarını eşleştir

Kavram Anlamı
declarative_base Temel sınıf verir
__tablename__ Tablo adını belirler
class User(Base) Model tanımlar
Column Sütun oluşturur

2 __tablename__ özniteliği ne belirler?

  • Sınıf adını
  • Tablo adını Doğru cevap
  • Bağlantı dizesini
  • Sütun türünü

Açıklama: __tablename__ veritabanındaki tablo adını belirler.

3 __tablename__ atamasını tamamla

Soru
class User(Base):
    ____ = "users"
Cevap
class User(Base):
    __tablename__ = "users"

Açıklama: __tablename__ özniteliği tablo adını belirler.

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