Разработка программного обеспечения требует изучения языков программирования. Одним из наиболее популярных является Python. Он пользуется спросом не только у новичков, но и у опытных разработчиков. 

Python оснащен богатым спектром инструментов. Один из них – это SQLAlchemy. Данный продукт появился еще в 2006 году. Он набрал огромную популярность среди тех, кто использует в своих проектах базы данных. Далее предстоит изучить the SQLAlchemy в Python более подробно.

Что это такое

The SQLAlchemy – программное обеспечение с открытым исходным кодом. Используется для работы с базами данных через язык запросов SQL. Использует для работы технологии ORM (Object Relational Mapping). С ее помощью удается связать базы данных с концепциями объектно-ориентированных языков разработки.

Написан the SQLAlchemy ORM на Питоне. Предоставляет полную мощность и гибкость SQL для программистов. Является кроссплатформенным инструментом, функционирующим по лицензии MIT.

Первая версия the SQLAlchemy ORM была выпущена в феврале 2006 года Майклом Байером. Последняя и актуальная опубликована в апреле 2018.

ORM – это…

ORM или Object Relational Mapping) – метод программирования для преобразования данных между несовместимыми системами типов в объектно-ориентированной разработке. Обычно системы типов в языках ООП вроде the Python включает в себя нескалярные типы. Они не могут быть выражены как примитивные:

  • строки;
  • целочисленные значения.

Объекты в скалярных данных должны быть преобразованы для взаимодействия с базой данных the Python.

В системах ORM каждый класс отображается на таблицу в стандартной БД. Вместо того, чтобы писать большой код для взаимодействия с ней, ORM использует специальные команды. Разработчик сможет сосредоточиться на формировании грамотной логике системы.

ORM (object relational mapper) – объектно-реляционное отображение или преобразование – технология разработки, которая связывает базы данных с концепциями ООП через создание виртуальной объектной БД.

Преимущества SQLAlchemy

The SQLAlchemy помогает описывать the database и взаимодействовать с ними через The Python. SQL-запросы в программном коде писать не придется. Данный прием упрощает разработку. Он делает код более читабельным. With the SQLAlchemy об экранировании можно забыть. Это поможет защититься от SQL-инъекций (mapped).

The SQLAlchemy в Python имеет следующие преимущества:

  • ORM здесь можно не использовать – это необязательная концепция;
  • четко установленная архитектура;
  • совместимость с SQL-запросами, написанными вручную;
  • поддержка транзакций;
  • возможность формирования запросов через функции и выражения the Python;
  • модульность и высокий уровень расширяемости;
  • поддержка раздельного определения объектного отображения, а также классов;
  • составные индексы;
  • отношения между классами, включая «один ко многим» и «многие ко многим»;
  • объекты, ссылающиеся сами на себя.

The SQLAlchemy предусматривает предварительную и последующую обработку информации. При помощи соответствующего инструмента допускается использование разных СУБД.

Начало работы

Чтобы воспользоваться рассматриваемым инструментом, его необходимо хотя бы поверхностно изучить. Эксплуатация программного обеспечения начинается с инициализации и настройки среды разработки. Эти элементарные операции должен знать каждый программист на Python.

Инициализация

Установка of these instrument can be realized 3 способами:

  1. С нуля. Для этого необходимо использовать setuptools. Для этого в консоли необходимо набрать такую команду:Введение в SQLAlchemy. После этого произойдет загрузка последней версии инструмента из Python Cheese Shop с последующей установкой на устройство.
  2. С официального сайта через установочный скрипт. Воспользоваться придется командой: Введение в SQLAlchemy.
  3. Через pip. В этом случае предстоит выполнить такой запрос: Введение в SQLAlchemy.

Перед началом работы рекомендуется проверить версию библиотеки (она должна быть последней для корректного функционирования), а также правильность to the installing.

Введение в SQLAlchemy

Рассматриваемый инструмент подходит для работы с реализацией DBAPI. Она необходима для корректной БД. Установленная библиотека использует систему диалектов для связи с различными типами реализаций DBALI и базами информаций. Для каждого из них необходимо предварительно устанавливать соответствующие драйверы.

По умолчанию поддерживаются следующие диалекты:

  • Жар-птица (Firebird);
  • Microsoft SQL Server;
  • Oracle;
  • MySQL;
  • SQLite;
  • Sybase;
  • PostgreSQL.

При работе с рассматриваемым элементом в Python необходимо обратить внимание на язык выражений – Core.

SQLAlchemy Core

Ядро изучаемой библиотеки поддерживает:

  • ядро рендеринга SQL;
  • интеграцию DBAPI и транзакций;
  • сервисы описания схем.

Использует для функционирования язык выражений SQL. Он представлен системой структур и выражений реляционных БД с поддержкой конструкций Питона. В нем имеется система представления примитивных конструкций реляционных БД. В отличие от ORM предоставляет высокоуровневые абстрактные шаблоны (map) использования.

Язык выражений предоставляет примитивные конструкции the database напрямую. Он не зависит от серверной части. Охватывает все аспекты исходного SQL. SQLAlchemy Core ближе к сырому SQL, чем любой другой компонент библиотеки.

Операторы языка в Core переводятся in необработанные SQL-запросы через специальные механизмы. Далее будут представлены некоторые ключевые моменты, необходимые для работы с БД через рассматриваемое программное обеспечение.

Подключение к БД

Для подключения for database необходимо использовать класс Engine. Он соединяет пул вместе с объектом and формирует источник подключения и поведения БД. Engine Objects создаются через функцию create_engine.

Она принимает БД в виде одного аргумента. Чтобы функция работала корректно в SQLAlchemy and ORM, база информации нигде не должна быть определена. Стандартная операция вызова отправляет URL в качестве первого позиционного аргумента. Обычно ей выступает строка, указывающая на диалект и аргументы соединения. Ниже – пример создания БД.

Введение в SQLAlchemy

Если необходимо использовать данные from MySQL, используется запись:

Введение в SQLAlchemy

При использовании драйвера PyMySQL с MySQL потребуется указать в исходном коде такую строчку:

Введение в SQLAlchemy

Функция create_engine вернет объект Engine. Вот важные методы этого класса:

МетодОписание
Connect()Возвращает объект подключения SQLAlchemy and ORM.
Execute()Выполняет all functions.
Begin()Вернет диспетчер контекста, подключенный к соответствующей операции. Транзакция будет фиксироваться при успешном выполнении.
Dispose()Удаляет пул соединений
Driver()Указывает название драйвера используемого диалекта
Table_names()Метод для возврата списка всех имен таблиц. Распространяется на всю базу данных.
Transactions()Обеспечивает выполнение функции в пределах заданной транзакции

Теперь можно использовать функцию create для формирования новой таблицы информации.

Как создать таблицу

SQLAlchemy Core ORM формирует свои выражения для столбцов таблицы. Их объекты – это столбцы в базах данных, представленные TableObject. Метаданные включают в себя определения таблиц и связанных с ними объектов: триггеров, индексов и так далее.

Объект MetaData – это набор объектов таблицы и связанных с ними конструкций. Включает в себя коллекцию элементов Table, а также необязательную привязку к Connection или Engine.

Введение в SQLAlchemy

Конструктор класса MetaData может включать в себя параметры связывания и схемы, которые отсутствуют по умолчанию.

Для определения всех таблиц в каталоге метаданных используется конструкция Table. Она напоминает стандартный оператор SQL Create Table. Объект соответствующего класса – это таблица в БД. Его конструктор может принимать такие параметры:

НазваниеОписание
MetadataОбъект метаданных, содержащий таблицу
Columns (Столбцы)Один или несколько объектов класса Column

Объект столбца – это непосредственный столбец в таблице БД. Конструктор принимает имя, тип, а также иные параметры вроде primary_key и ограничений.

Данные столбцов в SQLAlchemy ORM будут сопоставляться as well типы информации, определенных заблаговременно. Вот несколько общих поддерживаемых вариантов:

  • логический;
  • дата;
  • время и дата;
  • целочисленный;
  • строки;
  • текстовые данные;
  • float;
  • SmallInteger;
  • BigInteger.

Для корректного создания таблицы students в уже имеющейся базе колледжа необходимо использовать код такого типа:

Введение в SQLAlchemy

Функция create_all() будет использовать объект Engine для создания всех определенных объектов в таблице. После этого он сохранит сведения в качестве метаданных:

Введение в SQLAlchemy

А вот полный код, позволяющий создать в SQLAlchemy ORM базу данных SQLite под названием college.db. Она будет включать в себя таблицу учеников:

Введение в SQLAlchemy

Для атрибута echo функции create_engine() установлено значение True. За счет этого консоль будет отображать фактически сформированный SQL-запрос для создания таблицы. Выглядит это так:

Введение в SQLAlchemy

College.db создается в текущем рабочем каталоге. Для проверки правильности формирования соответствующего компонента допускается открытие БД через любой инструмент SQLite GUI. Пример – SQLite Studio.

SQL-выражения

SQL-выражения создаются с поддержкой соответствующих методов объекта целевой таблицы. Пример – оператор INSERT. Он создается при помощи метода insert(). Выглядит соответствующий запрос так:

Введение в SQLAlchemy

Результатом станет объект Insert, который можно проверить через функцию str(). Ниже – наглядный пример присваивания некоторых параметров: фамилии, имени, идентификатора учащегося.

Введение в SQLAlchemy

Метод values() помогает вставить значение в то или иное поле. Для этого используется шаблон:

Введение в SQLAlchemy

SQL-запрос, отображающийся в консоли Python при работе с SQLAlchemy, не будет показывать фактическое значение. В приведенном фрагменте им выступит «Karan». Вместо этого генерируется параметр связки. Он отображается в скомпилированной форме оператора.

Введение в SQLAlchemy

Точно так же работают update(), delete() и select(). За их создание отвечают выражения UPDATE, DELETE и SELECT соответственно.

Здесь представлен небольшой видео-урок по основам использования the SQLAlchemy. Лучше данный инструмент помогут изучить специализированные онлайн курсы.

Интересует Python? Добро пожаловать на курс в Otus!