Русская Википедия:SQLAlchemy
Шаблон:Карточка программы SQLAlchemy — это программная библиотека на языке Python для работы с реляционными СУБД с применением технологии ORM. Служит для синхронизации объектов Python и записей реляционной базы данных. SQLAlchemy позволяет описывать структуры баз данных и способы взаимодействия с ними на языке Python без использования SQLШаблон:Sfn. Библиотека была выпущена в феврале 2006 под лицензией открытого ПО MIT[1].
Работает back-end для баз данных: MySQL, PostgreSQL, SQLite, Oracle и других,[2] между которыми можно переключаться изменением конфигурацииШаблон:Sfn.
Основные возможности
- Использование ORM не является обязательным
- Устоявшаяся архитектура
- Возможность использовать SQL, написанный вручную
- Поддержка транзакций
- Создание запросов с использованием функций и выражений Python
- Модульность и расширяемость
- Дополнительная возможность раздельного определения объектного отображения и классов
- Поддержка составных индексов
- Поддержка отношений между классами, в том числе «один-ко-многим» и «многие-ко-многим»
- Поддержка ссылающихся на себя объектов
- Предварительная и последующая обработка данных (параметров запроса, результата)
и другие[3].
Преимущества использования
Использование SQLAlchemy для автоматической генерации SQL-кода имеет несколько преимуществ по сравнению с ручным написанием SQLШаблон:Sfn:
- Безопасность. Параметры запросов экранируются, что делает атаки типа внедрение 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[4]. Например, известный социальный новостной сайт Reddit построен с использованием SQLAlchemy[5]. Список организаций, использующих SQLAlchemy, можно найти на сайте проекта[6].
У SQLAlchemy имеется несколько аналогов, в том числе: Шаблон:Не переведено 3 и Шаблон:Не переведено 3.
Примечания
Ссылки
Литература
- ↑ PyCon 2007 Wrapup Шаблон:Wayback,SQLAlchemy released 0.1.0 in February 2006 — O’Reilly Media
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Шаблон:Cite web
- ↑ Ошибка цитирования Неверный тег
<ref>
; для сносокusing
не указан текст - ↑ Шаблон:Cite web
- Страницы, использующие устаревший тег source
- Русская Википедия
- Библиотеки Python
- Свободное программное обеспечение, написанное на Python
- Статьи с примерами кода Python
- Программное обеспечение с лицензией MIT
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Википедия
- Статья из Википедии
- Статья из Русской Википедии
- Страницы с ошибками в примечаниях