Interested Article - SQLAlchemy

SQLAlchemy — это программная библиотека на языке Python для работы с реляционными СУБД с применением технологии ORM . Служит для синхронизации объектов Python и записей реляционной базы данных. SQLAlchemy позволяет описывать структуры баз данных и способы взаимодействия с ними на языке Python без использования SQL . Библиотека была выпущена в феврале 2006 под лицензией открытого ПО MIT .

Работает 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 имеется несколько аналогов, в том числе: (англ.) и (англ.) .

Примечания

  1. . Дата обращения: 26 июня 2009. 2 апреля 2012 года.
  2. — 2024.
  3. — 2006.
  4. — 2006.
  5. , p. 154—155.
  6. от 21 октября 2012 на Wayback Machine , SQLAlchemy released 0.1.0 in February 2006 — O’Reilly Media
  7. . Дата обращения: 30 июля 2012. Архивировано из 15 июня 2012 года.
  8. . Дата обращения: 30 июля 2012. 15 июня 2012 года.
  9. , p. 15.
  10. . Дата обращения: 4 августа 2012. 30 мая 2008 года.
  11. . Дата обращения: 22 октября 2019. 3 ноября 2019 года.

Ссылки

  • (англ.)
  • Gift, Noah . Developerworks . IBM. 2 апреля 2012 года.

Литература

Источник —

Same as SQLAlchemy