Разработка программного обеспечения требует изучения языков программирования. Одним из наиболее популярных является 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 способами:
- С нуля. Для этого необходимо использовать setuptools. Для этого в консоли необходимо набрать такую команду:. После этого произойдет загрузка последней версии инструмента из Python Cheese Shop с последующей установкой на устройство.
- С официального сайта через установочный скрипт. Воспользоваться придется командой: .
- Через pip. В этом случае предстоит выполнить такой запрос: .
Перед началом работы рекомендуется проверить версию библиотеки (она должна быть последней для корректного функционирования), а также правильность to the installing.
Рассматриваемый инструмент подходит для работы с реализацией 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 в качестве первого позиционного аргумента. Обычно ей выступает строка, указывающая на диалект и аргументы соединения. Ниже – пример создания БД.
Если необходимо использовать данные from MySQL, используется запись:
При использовании драйвера PyMySQL с MySQL потребуется указать в исходном коде такую строчку:
Функция 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.
Конструктор класса MetaData может включать в себя параметры связывания и схемы, которые отсутствуют по умолчанию.
Для определения всех таблиц в каталоге метаданных используется конструкция Table. Она напоминает стандартный оператор SQL Create Table. Объект соответствующего класса – это таблица в БД. Его конструктор может принимать такие параметры:
Название | Описание |
Metadata | Объект метаданных, содержащий таблицу |
Columns (Столбцы) | Один или несколько объектов класса Column |
Объект столбца – это непосредственный столбец в таблице БД. Конструктор принимает имя, тип, а также иные параметры вроде primary_key и ограничений.
Данные столбцов в SQLAlchemy ORM будут сопоставляться as well типы информации, определенных заблаговременно. Вот несколько общих поддерживаемых вариантов:
- логический;
- дата;
- время и дата;
- целочисленный;
- строки;
- текстовые данные;
- float;
- SmallInteger;
- BigInteger.
Для корректного создания таблицы students в уже имеющейся базе колледжа необходимо использовать код такого типа:
Функция create_all() будет использовать объект Engine для создания всех определенных объектов в таблице. После этого он сохранит сведения в качестве метаданных:
А вот полный код, позволяющий создать в SQLAlchemy ORM базу данных SQLite под названием college.db. Она будет включать в себя таблицу учеников:
Для атрибута echo функции create_engine() установлено значение True. За счет этого консоль будет отображать фактически сформированный SQL-запрос для создания таблицы. Выглядит это так:
College.db создается в текущем рабочем каталоге. Для проверки правильности формирования соответствующего компонента допускается открытие БД через любой инструмент SQLite GUI. Пример – SQLite Studio.
SQL-выражения
SQL-выражения создаются с поддержкой соответствующих методов объекта целевой таблицы. Пример – оператор INSERT. Он создается при помощи метода insert(). Выглядит соответствующий запрос так:
Результатом станет объект Insert, который можно проверить через функцию str(). Ниже – наглядный пример присваивания некоторых параметров: фамилии, имени, идентификатора учащегося.
Метод values() помогает вставить значение в то или иное поле. Для этого используется шаблон:
SQL-запрос, отображающийся в консоли Python при работе с SQLAlchemy, не будет показывать фактическое значение. В приведенном фрагменте им выступит «Karan». Вместо этого генерируется параметр связки. Он отображается в скомпилированной форме оператора.
Точно так же работают update(), delete() и select(). За их создание отвечают выражения UPDATE, DELETE и SELECT соответственно.
Здесь представлен небольшой видео-урок по основам использования the SQLAlchemy. Лучше данный инструмент помогут изучить специализированные онлайн курсы.
Интересует Python? Добро пожаловать на курс в Otus!