BaşlayınÜcretsiz başlayın

Veritabanından Tabloları Otomatik Yükleme

SQLAlchemy, yansıma (reflection) adı verilen bir yöntemle veritabanından tabloları otomatik olarak yüklemek için kullanılabilir. Yansıma, veritabanını okuyup bu bilgiden yola çıkarak üstveriyi (metadata) oluşturma sürecidir. Bu, tabloyu elle oluşturmaya ters bir yaklaşımdır ve mevcut veritabanlarıyla çalışırken çok kullanışlıdır.

Yansıma yapmak için önce bir MetaData nesnesini içe aktarıp başlatman gerekir. MetaData nesneleri, bir veritabanında depolanan tablolar hakkında bilgi barındırır. Yansıma sırasında, MetaData nesnesi yansıtılan tabloya ait bilgilerle otomatik olarak doldurulur; bu yüzden yansıtmadan önce sadece MetaData() çağrısıyla başlatmamız yeterlidir.

Ayrıca SQLAlchemy paketinden Table nesnesini de içe aktarman gerekir. Sonrasında bu Table nesnesini kullanarak tablonu engine üzerinden okuyabilir, sütunları otomatik yükleyebilir ve üstveriyi doldurabilirsin. Bunu tek bir Table() çağrısıyla yapabilirsin: Table nesnesini bu şekilde kullanmak, bir fonksiyona argüman geçirmeye benzer. Örneğin sütunları engine ile otomatik yüklemek için Table() çağrısına autoload=True ve autoload_with=engine anahtar sözcüklü argümanlarını belirtmelisin.

Son olarak, az önce oluşturduğun nesne hakkındaki bilgileri görmek için repr() fonksiyonunu kullanacaksın. Her Python nesnesi için repr(), o nesnenin metin temsili döner. SQLAlchemy Table nesneleri içinse, üstveride yer alan tablo bilgilerini döndürür.

Bu egzersizde görevin, engine üzerinde bulunan "census" tablosunu census adlı bir değişkene yansıtmaktır. Önceki egzersizde yazdığın engine oluşturma kodunu biz senin için önceden doldurduk.

Bu egzersiz, kursun bir parçasıdır

Python ile Veritabanlarına Giriş

Kursa Göz Atın

Egzersiz talimatları

  • sqlalchemy içinden Table ve MetaData öğelerini içe aktar.
  • Bir MetaData nesnesi oluştur: metadata
  • Table nesnesini şu argümanlarla kullanarak census tablosunu yansıt:
    • Tablo adı (string olarak) ('census').
    • Az önce başlattığın metadata.
    • autoload=True
    • Otomatik yükleme için kullanılacak engine — bu durumda engine.
  • repr() fonksiyonunu kullanarak census ayrıntılarını yazdır.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# Import create_engine, MetaData, and Table
from sqlalchemy import create_engine, ___, ____

# Create engine: engine
engine = create_engine('sqlite:///census.sqlite')

# Create a metadata object: metadata
metadata = ___

# Reflect census table from the engine: census
census = Table(____, ____, autoload=____, autoload_with=____)

# Print census table metadata
print(____)
Kodu Düzenle ve Çalıştır