Özet - SQLAlchemy
- Python kursu
- İleri seviye
- Ders 48/83
- 5 dk
Engine, Session ve query'yi birleştirerek bir kullanıcı deposu yazarsın.
Özet - SQLAlchemy
Bu grupta SQLAlchemy'in temel kavramlarını öğrendin. Engine bağlantıyı, Session işlemleri, declarative_base model tanımını, Column sütunları, session.query sorguları yönetir.
engine = create_engine("sqlite:///:memory:")
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
session.add(User(name="Ayşe"))
session.commit()
print(len(session.query(User).all()))Son adımda tüm bunları birleştirerek bir kullanıcı deposu yazacaksın.
Uygulama Kullanıcı deposu
from sqlalchemy import create_engine, Column, Integer, String, from sqlalchemy.orm import declarative_base, sessionmaker ile başla. Base = declarative_base() ve class User(Base): tanımla (__tablename__ = "users", id = Column(Integer, primary_key=True), name = Column(String)). engine = create_engine("sqlite:///:memory:") ve Base.metadata.create_all(engine) ile tabloları oluştur. Session = sessionmaker(bind=engine) ve session = Session() ile oturum aç. session.add(User(name="Ayşe")) ve session.add(User(name="Ali")) ile iki kayıt ekle, session.commit() yap. print(len(session.query(User).all())) ile kayıt sayısını yazdır.
Başlangıç kodu
# sqlalchemyden create_engine, Column, Integer, String'i içe aktar
# declarative_base ve sessionmaker'ı içe aktar
# Base ve User sınıfını tanımla
# motoru oluştur ve tabloları yarat
# oturum aç, iki User ekle ve commit yap
# sorgu ile kayıt sayısını yazdırÖrnek çözüm
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import declarative_base, sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String)
engine = create_engine("sqlite:///:memory:")
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
session.add(User(name="Ayşe"))
session.add(User(name="Ali"))
session.commit()
print(len(session.query(User).all()))Beklenen çıktı
2
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangisi oturumdan tüm kayıtları getirir?
- session.commit()
- session.query(User).all() Doğru cevap
- session.add(User)
- session.close()
Açıklama: session.query(User).all() tüm User kayıtlarını getirir.
2 Grup araçlarını eşleştir
| Kavram | Anlamı |
|---|---|
create_engine |
Motor oluşturur |
sessionmaker |
Oturum fabrikasıdır |
declarative_base |
Temel sınıf verir |
session.query |
Sorgu başlatır |