SQLAlchemy Core - Veritabanına Bağlanma
Önceki bölümde, SQLAlchemy'de ifade Dili hakkında tartışmıştık. Şimdi bir veritabanına bağlanma adımlarına geçelim.
Motor sınıfı bir Pool and Dialect together bir veritabanı kaynağı sağlamak connectivity and behavior. Engine sınıfının bir nesnesi,create_engine() işlevi.
Create_engine () işlevi, veritabanını bir bağımsız değişken olarak alır. Veritabanının herhangi bir yerde tanımlanması gerekli değildir. Standart çağrı formu, URL'yi ilk konumsal argüman olarak göndermelidir, genellikle veritabanı diyalektini ve bağlantı argümanlarını gösteren bir dize. Aşağıda verilen kodu kullanarak bir veritabanı oluşturabiliriz.
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)
Bir MySQL database, aşağıdaki komutu kullanın -
engine = create_engine("mysql://user:pwd@localhost/college",echo = True)
Özellikle belirtmek gerekirse DB-API bağlantı için kullanılacak URL string aşağıdaki formu alır -
dialect[+driver]://user:password@host/dbname
Örneğin, kullanıyorsanız PyMySQL driver with MySQL, aşağıdaki komutu kullanın -
mysql+pymysql://<username>:<password>@<host>/<dbname>
echo flagPython'un standart günlükleme modülü aracılığıyla gerçekleştirilen SQLAlchemy günlüğünü kurmak için bir kısayoldur. Sonraki bölümlerde, üretilen tüm SQL'leri öğreneceğiz. Ayrıntılı çıktıyı gizlemek için echo niteliğini şu şekilde ayarlayın:None. Create_engine () işlevinin diğer argümanları diyalekte özgü olabilir.
Create_engine () işlevi bir Engine object. Engine sınıfının bazı önemli yöntemleri şunlardır:
Sr.No. | Yöntem ve Açıklama |
---|---|
1 | connect() Bağlantı nesnesini döndürür |
2 | execute() Bir SQL deyimi yapısını yürütür |
3 | begin() Oluşturulan İşlemle Bağlantı sağlayan bir bağlam yöneticisi döndürür. İşlem başarıyla tamamlandıktan sonra İşlem gerçekleştirilir, aksi takdirde geri alınır |
4 | dispose() Motor tarafından kullanılan bağlantı havuzunu ortadan kaldırır |
5 | driver() Motor tarafından kullanılan Lehçenin sürücü adı |
6 | table_names() Veritabanında bulunan tüm tablo adlarının bir listesini verir |
7 | transaction() Verilen işlevi bir işlem sınırı içinde yürütür |