SQLAlchemy Core - Menghubungkan ke Database
Pada bab sebelumnya, kita telah membahas tentang bahasa ekspresi di SQLAlchemy. Sekarang mari kita lanjutkan ke langkah-langkah yang terlibat dalam menghubungkan ke database.
Kelas mesin menghubungkan a Pool and Dialect together untuk menyediakan sumber database connectivity and behavior. Objek kelas Engine dibuat menggunakancreate_engine() fungsi.
Fungsi create_engine () mengambil database sebagai satu argumen. Database tidak perlu didefinisikan di mana pun. Bentuk panggilan standar harus mengirimkan URL sebagai argumen posisi pertama, biasanya string yang menunjukkan dialek database dan argumen koneksi. Dengan menggunakan kode yang diberikan di bawah ini, kita dapat membuat database.
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)
Untuk sebuah MySQL database, gunakan perintah di bawah ini -
engine = create_engine("mysql://user:pwd@localhost/college",echo = True)
Untuk menyebutkan secara khusus DB-API digunakan untuk koneksi, file URL string mengambil bentuk sebagai berikut -
dialect[+driver]://user:password@host/dbname
Misalnya, jika Anda menggunakan PyMySQL driver with MySQL, gunakan perintah berikut -
mysql+pymysql://<username>:<password>@<host>/<dbname>
Itu echo flagadalah jalan pintas untuk menyiapkan logging SQLAlchemy, yang dilakukan melalui modul logging standar Python. Pada bab-bab selanjutnya, kita akan mempelajari semua SQL yang dihasilkan. Untuk menyembunyikan output verbose, setel atribut echo keNone. Argumen lain untuk fungsi create_engine () mungkin dialek khusus.
Fungsi create_engine () mengembalikan file Engine object. Beberapa metode penting dari kelas Engine adalah -
Sr.No. | Metode & Deskripsi |
---|---|
1 | connect() Mengembalikan objek koneksi |
2 | execute() Menjalankan konstruksi pernyataan SQL |
3 | begin() Mengembalikan manajer konteks yang memberikan Koneksi dengan Transaksi yang dibuat. Setelah operasi berhasil, Transaksi dilakukan, jika tidak maka dibatalkan |
4 | dispose() Membuang kumpulan koneksi yang digunakan oleh Mesin |
5 | driver() Nama driver dari Dialek yang digunakan oleh Mesin |
6 | table_names() Menampilkan daftar semua nama tabel yang tersedia di database |
7 | transaction() Menjalankan fungsi yang diberikan dalam batas transaksi |