SQLAlchemy — программная библиотека на языке Python для работы с реляционными СУБД с применением технологии ORM. Служит для синхронизации объектов Python и записей реляционной базы данных. SQLAlchemy позволяет описывать структуры баз данных и способы взаимодействия с ними на языке Python без использования SQL. Библиотека была выпущена в феврале 2006 под лицензией открытого ПО MITPyCon 2007 Wrapup ,SQLAlchemy released 0.1.0 in February 2006 — O’Reilly Media.
Работает back-end для баз данных: MySQL, PostgreSQL, SQLite, Oracle и других, между которыми можно переключаться изменением конфигурации.
Основные возможности Использование ORM не является обязательным Устоявшаяся архитектура Возможность использовать SQL, написанный вручную Поддержка транзакций Создание запросов с использованием функций и выражений Python Модульность и расширяемость Дополнительная возможность раздельного определения объектного отображения и классов Поддержка составных индексов Поддержка отношений между классами, в том числе «один-ко-многим» и «многие-ко-многим» Поддержка ссылающихся на себя объектов Предварительная и последующая обработка данных (параметров запроса, результата) и другие.
Преимущества использования Использование SQLAlchemy для автоматической генерации SQL-кода имеет несколько преимуществ по сравнению с ручным написанием SQL: Безопасность. Параметры запросов экранируются, что делает атаки типа внедрение SQL-кода маловероятными. Производительность. Повышается вероятность повторного использования запроса к серверу базы данных, что может позволить ему в некоторых случаях применить повторно план выполнения запроса. Переносимость. SQLAlchemy, при должном подходе, позволяет писать код на Python, совместимый с несколькими back-end СУБД. Несмотря на стандартизацию языка SQL, между базами данных имеются различия в его реализации, абстрагироваться от которых и помогает SQLAlchemy.
Пример Простейший пример с использованием SQLAlchemy в оперативной памяти:
>>> from sqlalchemy import create_engine >>> engine = create_engine('sqlite:///:memory:') >>> engine.execute("select 'Hello, World!'").scalar() 'Hello, World!'
Применение и аналоги SQLAlchemy находит применение в веб-фреймворках TurboGears, Pylons, Pyramid, Zope. Например, известный социальный новостной сайт Reddit построен с использованием SQLAlchemy. Список организаций, использующих SQLAlchemy, можно найти на сайте проекта.
У SQLAlchemy имеется несколько аналогов, в том числе: и .
Примечания
Ссылки
Домашняя страница проекта
Литература
Категория:Библиотеки Python Категория:Свободное программное обеспечение, написанное на Python Категория:Статьи с примерами кода Python Категория:Программное обеспечение с лицензией MIT