Погледнете много внимателно SQLAlchemy.
Можете да тествате и разработвате със SQLite.
Можете да влезете в производството с MySQL - като по същество не правите промени във вашите приложения.
DB-API, въпреки че е широко придържан, има достатъчно гъвкавост, че (1) не сте изолирани от SQL вариации в основната RDBMS и (2) все още има специфични за DB драйвери, които е трудно да се скрият.
Друг добър ORM слой е ORM, който е част от Django . Можете (с малко усилия) да използвате само Django ORM, без да използвате останалата част от уеб рамката на Django.
Използвайте ORM слой (SQLAlchemy или SQLObject) с предпочитание пред DB-API.
Защо? Вашият модел трябва да бъде солиден, ясен, добре обмислен OO модел. Релационното картографиране трябва да бъде второ след обектния модел. SQLAlchemy прави това разумен подход.
„Слой за абстракция на DB“ ще се случи в нормалния ход на събитията. Всъщност, поради DB-API (както се използва от SQLAlchemy) вие дадохте два слоя на абстракция:ORM и DB-API.