SQLAlchemy

SQLAlchemy
SQLAlchemy
Тип

ORM

Разработчик

Mike Bayer[1]

Написана на

Python

Операционная система

Кроссплатформенное ПО

Последняя версия

0.7.8 (12 июня 2012 [2])

Лицензия

MIT License

Сайт

sqlalchemy.org (англ.)

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

Работает back-end для баз данных: MySQL, PostgreSQL, SQLite, Oracle и других,[5] между которыми можно переключаться изменением конфигурации[3].

Содержание

Основные возможности

  • Использование ORM не является обязательным
  • Устоявшаяся архитектура
  • Возможность использовать SQL, написанный вручную
  • Поддержка транзакций
  • Создание запросов с использованием функций и выражений Python
  • Модульность и расширяемость
  • Дополнительная возможность раздельного определения объектного отображения и классов
  • Поддержка составных индексов
  • Поддержка отношений между классами, в том числе «один-ко-многим» и «многие-ко-многим»
  • Поддержка ссылающихся на себя объектов
  • Предварительная и последующая обработка данных (параметров запроса, результата)

и другие[6].

Преимущества использования

Использование SQLAlchemy для автоматической генерации SQL-кода имеет несколько преимуществ по сравнению с ручным написанием SQL[7]:

  • Безопасность. Параметры запросов экранируются, что делает атаки типа внедрение SQL-кода маловероятными.
  • Производительность. Повышается вероятность повторного использования запроса к серверу базы данных, что может позволить ему в некоторых случаях применить повторно план выполнения запроса.
  • Переносимость. SQLAlchemy, при должном подходе, позволяет писать код на Python, совместимый с несколькими back-end СУБД. Несмотря на стандартизацию языка SQL, между базами данных имеются различия в его реализации, абстрагироваться от которых и помогает SQLAlchemy.

Пример

Простейший пример с использованием SQLite в оперативной памяти:

>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///:memory:')
>>> engine.execute("select 'Hello, World!'").scalar()
u'Hello, World!'

Применение и аналоги

SQLAlchemy находит применение в веб-фреймворках TurboGears, Pylons, Pyramid, Zope[8]. Например, известный социальный сайт новостной сайт Reddit построен с использованием SQLAlchemy[1]. Список организаций, использующих SQLAlchemy, можно найти на сайте проекта.

У SQLAlchemy имеется несколько аналогов, в том числе: SQLObject (англ.)русск., Storm (англ.)русск. и свой собственный ORM из Django.

Примечания

Ссылки

Литература

  • Rick Copeland. Essential SQLAlchemy. — O'Reilly Media., 2008. — 215 с. — ISBN 0-596-51614-2
  • Tarek Ziadé. Expert Python Programming. — Packt Publishing Ltd., 2008. — 372 с. — ISBN 978-1-847194-94-7

Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "SQLAlchemy" в других словарях:

  • SQLAlchemy — Betriebssystem plattformunabhängig Programmier­sprache Python Kategorie ORM Lizenz MIT Lizenz …   Deutsch Wikipedia

  • SQLAlchemy — is an open source SQL toolkit and object relational mapper for the Python programming language released under the MIT License.SQLAlchemy provides a full suite of well known enterprise level persistence patterns, designed for efficient and high… …   Wikipedia

  • SQLAlchemy — est un toolkit open source SQL et un mapping objet relationnel (ORM) écrit en Python et publié sous licence MIT. SQLAlchemy a opté pour l utilisation du pattern Data Mapper[1] plutôt que l active record utilisés par de nombreux autres ORM.… …   Wikipédia en Français

  • Comparison of web application frameworks — This is a comparison of notable web application frameworks. Contents 1 General 1.1 Perl 1.2 PHP 1.3 Java 1.4 Python …   Wikipedia

  • Сравнение каркасов веб-приложений — Это сравнительная таблица фреймворков веб приложений. Содержание 1 Фреймворки 1.1 ASP.NET 1.2 C++ 1.3 ColdFusion Markup Language (CFML) …   Википедия

  • Pyramid (программный каркас) — Pyramid Тип Программный каркас веб приложений Разработчик …   Википедия

  • CherryPy — Developer(s) CherryPy team Stable release 3.2.0 / February 25, 2011; 8 months ago (2011 02 25) Written in Python …   Wikipedia

  • Pylons — Тип Программный каркас для создания веб приложений Разработчик Бен Бангерт, Джеймс Гарднер Операционная система Кроссплатформенный Последняя версия 1.3 ( …   Википедия

  • TurboGears — Infobox Software name = TurboGears developer = [http://www.blueskyonmars.com/ Kevin Dangoor] et al. latest release version = 1.0.7 latest release date = September 15, 2008 programming language = Python operating system = Cross platform genre =… …   Wikipedia

  • Python — Este artículo trata sobre el lenguaje de programación. Para el grupo de humoristas, véase Monty Python. Para otros usos de este término, véase Pitón. Python Desarrol …   Wikipedia Español


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»