Model tanımlama
- Python kursu
- İleri seviye
- Ders 45/83
- 5 dk
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
# 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
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
class User(Base):
____ = "users"
class User(Base):
__tablename__ = "users"
Açıklama: __tablename__ özniteliği tablo adını belirler.