Работа с базами данных в Python с помощью SQLAlchemy: пошаговое руководство

Приложения и программные решения так или иначе обрабатывают информацию, которую необходимо хранить на случай повторного воспроизведения и использования. Обычно для этого применяют системы управления или серверы баз данных, а в небольших проектах достаточно создать БД с использованием библиотеки SQLAlchemy Python.
Содержание
Что такое SQLAlchemy Python
SQLAlchemy — это библиотека с открытым исходным кодом, созданная для синхронизации объектов Python с записями реляционных баз данных: Oracle, PostgreSQL, Microsoft SQL Server и др. SQLAlchemy создает модель преобразования информации из базы данных в объекты Python. Библиотека состоит из двух компонентов: SQLAlchemy Core и SQLAlchemy ORM.
- SQLAlchemy Core — компонент для взаимодействия библиотеки с SQL базами данных. Он определяет тип базы данных, преобразует код Python в понятные для баз запросы, работает с таблицами, индексами, колонками и т. п.
- SQLAlchemy ORM — интерфейс для управления базами данных через модели и объекты. Он передает запросы прямо в коде Python и не требует их записи на языке SQL.
Особенности SQLAlchemy Python
SQLAlchemy позволяет заменить одну базу данных другой с аналогичным наполнением в любой момент. Разработчикам необходимо всего лишь скорректировать часть кода с указанием типа используемого хранилища, но не переписывать его полностью.
SQLAlchemy позволяет формировать запросы через функции и выражения Python. Библиотека состоит из модулей и имеет высокий уровень масштабируемости. Она совместима с написанными вручную SQL-запросами.
С чего начать работу в SQLAlchemy Python
Установите библиотеку через команду pip install sqlalchemy.
Библиотека SQLAlchemy поддерживает ряд диалектов для связи с различными базами: PostgreSQL, Oracle, Microsoft SQL Server (MS SQL), MySQL, SQLite. Рассмотрим основные шаги по подключению и управлению базами данных.
Добавляем таблицу
Для начала необходимо настроить подключение к базе данных и создать объект engine. Он отвечает за управление базой данных и выполнение запросов SQL:
Команда conn = engine.connect()подключит базу, а metadata = db.MetaData()будет хранить данные о ее устройстве.
Теперь можно создавать объект «таблица». Пусть это будет база данных с постами в социальных сетях и комментариями к ним:
Используем следующую команду, чтобы создать объект и запустить наш код: metadata.create_all(engine)
База будет выглядеть так:
Заполняем таблицу
Для добавления элементов в нашу базу необходимо создать запрос в виде объекта.
Столбцы post_id и post_is_commented заполняются автоматически. Для передачи этого запроса в базу данных и внесения новой записи мы будем использовать команду conn.execute(insertion_query)
Теперь наша база выглядит так:
База данных с постами готова! Самое время попробовать выполнить некоторые базовые манипуляции с ее данными — отфильтровать, обновить и удалить.
Фильтруем данные (where)
Используем стандартный метод where для создания нового запроса. Функция покажет посты только интересующего нас автора:
Вывод:
Обновляем данные (update)
Воспользуемся функцией update для внесения изменений в дату публикации одного из постов:
Чтобы проверить обновления в консоли, отправим запрос:
Вывод:
Удаляем данные (delete)
Ненужные записи в базе данных всегда можно удалить с помощью запроса:
Для проверки успешности обновлений выведем данные в консоль с помощью запроса:
Вывод:
Для корректного завершения работы с БД необходимо использовать команду conn.close().
Это базовые функции библиотеки SQLAlchemy Python В рамках курса «Python-разработчик» вы изучите теорию и будете создавать и работать с базами данных, используя этот и другие инструменты Python на практике.
Анастасия Уминская
год назад