Интерфейс модуля
Здесь необходимо сказать о том, что должен предоставлять модуль для удовлетворения требований 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 (при отсутствии поддержки запрошенного свойства).
Больше книг — больше знаний!
Заберите 30% скидку новым пользователям на все книги Литрес с нашим промокодом
ПОЛУЧИТЬ СКИДКУ