2009-12-02 3 views

ответ

3

AFAIK нет ни одного модуля Python, который реализует DB-API для нескольких баз данных, и это в значительной степени по дизайну: зачем вводить ненужные функции и, возможно, требуется, чтобы библиотеки баз данных были установлены, если вы не собираетесь их использовать ? Вы можете спорить с этим дизайнерским решением, но так оно и есть. С другой стороны, DB-API пытается гарантировать, что API, представленный отдельными адаптерами БД, одинаковый (или очень близкий к тому же). И тогда есть модули ORM, такие как SQLAlchemy, которые обеспечивают намного более высокий уровень абстракции. Тем не менее, они все еще требуют модули DB-API более низкого уровня.

Примечание. Начиная с версии 2.5, стандартная библиотека Python включает в себя SQLite3 DB-API, т. Е. Батареи.

+0

+1 к sqlalchemy – nosklo

+1

Даже если вы не используете ORM, такие вещи, как create_engine http://www.sqlalchemy.org/docs/05/sqlexpression.html#connecting и друзья, очень полезны для подключения к различным dbs довольно бесшовные. Конечно, вы должны установить pycopg2 и друзей на последнюю милю, как вы указываете. –

1

Ну ... DBAPI является, что внешний интерфейс:

Этот API был определен для поощрения сходства между модулями Python , которые используются для доступа к базам данных. Делая это, , мы надеемся добиться согласованности, ведущей к более понятным модулям , который, как правило, более переносим по базам данных, и более широкому доступу к базе данных от Python.

Это всегда работало отлично для меня, по крайней мере, заботиться о том, чтобы решить проблемы, с которыми вы сталкиваетесь?

+0

Это не интерфейс; это API для одного. Я ищу модуль. –

+0

У меня действительно нет «проблемы» в смысле наличия проекта, который использует более одного механизма базы данных. Тем не менее, я экспериментировал с разными моделями и обнаружил, что загрузка, установка и работа с множеством наборов документации (ни один из модулей не соответствует API) немного громоздка. –

Смежные вопросы