Интерфейс модуля
Здесь необходимо сказать о том, что должен предоставлять модуль для удовлетворения требований DB-API 2.0.
Доступ к базе данных осуществляется с помощью объекта-соединения (connection object). DB-API-совместимый модуль должен предоставлять функцию-конструктор connect() для класса объектов-соединений. Конструктор должен иметь следующие именованные параметры:
- dsn Название источника данных в виде строки
- user Имя пользователя
- password Пароль
- host Адрес хоста, на котором работает СУБД
- database Имя базы данных.
Методы объекта-соединения будут рассмотрены чуть позже.
Модуль определяет константы, содержащие его основные характеристики:
- apilevel Версия DB-API ("1.0" или "2.0").
- threadsafety Целочисленная константа, описывающая возможности модуля при использовании потоков управления:
- 0 Модуль не поддерживает потоки.
- 1 Потоки могут совместно использовать модуль, но не соединения.
- 2 Потоки могут совместно использовать модуль и соединения.
- 3 Потоки могут совместно использовать модуль, соединения и курсоры. (Под совместным использованием здесь понимается возможность использования упомянутых ресурсов без применения семафоров).
- paramstyle Тип используемых пометок при подстановке параметров. Возможны следующие значения этой константы:
- "format" Форматирование в стиле языка ANSI C (например, "%s", "%i").
- "pyformat" Использование именованных спецификаторов формата в стиле Python ("%(item)s")
- "qmark" Использование знаков "?" для пометки мест подстановки параметров.
- "numeric" Использование номеров позиций (":1").
- "named" Использование имен подставляемых параметров (":name").
Модуль должен определять ряд исключений для обозначения типичных исключительных ситуаций: Warning (предупреждение), Error (ошибка), InterfaceError (ошибка интерфейса), DatabaseError (ошибка, относящаяся к базе данных). А также подклассы этого последнего исключения: DataError (ошибка обработки данных), OperationalError (ошибка в работе или сбой соединения с базой данных), IntegrityError (ошибка целостности базы данных), InternalError (внутренняя ошибка базы данных), ProgrammingError (программная ошибка, например, ошибка в синтаксисе SQL-запроса), NotSupportedError (при отсутствии поддержки запрошенного свойства).