Perhatikan baik-baik SQLAlchemy.
Anda dapat menguji dan mengembangkan dengan SQLite.
Anda dapat masuk ke produksi dengan MySQL -- pada dasarnya tidak membuat perubahan pada aplikasi Anda.
DB-API, meskipun dianut secara luas, memiliki fleksibilitas yang cukup sehingga (1) Anda tidak terisolasi dari variasi SQL dalam RDBMS yang mendasarinya dan (2) masih ada fitur khusus driver DB yang sulit disembunyikan.
Lapisan ORM bagus lainnya adalah ORM yang merupakan bagian dari Django . Anda dapat (dengan sedikit usaha) hanya menggunakan Django ORM tanpa menggunakan kerangka web Django lainnya.
Gunakan Lapisan ORM (SQLAlchemy atau SQLObject) daripada DB-API.
Mengapa? Model Anda harus menjadi model OO yang solid, jelas, dan dipikirkan dengan matang. Pemetaan relasional harus berada di urutan kedua setelah model objek. SQLAlchemy menjadikan ini pendekatan yang masuk akal.
"Lapisan Abstraksi DB" akan terjadi dalam rangkaian peristiwa yang normal. Memang, karena DB-API (seperti yang digunakan oleh SQLAlchemy), Anda memberikan dua lapisan abstraksi:ORM dan DB-API.