Посмотрите очень внимательно на SQLAlchemy.
Вы можете тестировать и разрабатывать с SQLite.
Вы можете начать работу с MySQL - практически не внося изменений в ваши приложения.
DB-API, хотя и широко применяется, обладает достаточной гибкостью, чтобы (1) вы не были изолированы от вариаций SQL в базовой СУБД и (2) все еще есть специфичные для драйвера БД функции, которые трудно скрыть .
Еще один хороший слой ORM - это ORM, который входит в Django . Вы можете (с небольшими усилиями) использовать только Django ORM, не используя остальную часть веб-фреймворка Django.
Используйте слой ORM (SQLAlchemy или SQLObject) вместо предпочтения DB-API.
Почему? Ваша модель должна быть надежной, четкой и продуманной. Реляционное отображение должно идти вторым после объектной модели. SQLAlchemy делает это разумным подходом.
«Уровень абстракции БД» будет происходить в нормальном ходе событий. Действительно, из-за DB-API (как используется SQLAlchemy) вы дали два уровня абстракции: ORM и DB-API.