Урок 05. SQLAlchemy: создание и наполнение базы данных
⚡ Кратко: SQLAlchemy — два подхода, движок, сессия
SQLAlchemy — библиотека Python для работы с БД через SQL и объектно-ориентированные запросы. Предлагает два подхода: ORM (объекты ↔ строки) и Core (низкоуровневый SQL).
- ORM — таблица → класс, строка → экземпляр, столбец → атрибут. Проще для разработки.
- Core — прямая работа с SQL. Быстрее для сложных запросов.
- create_engine — подключение:
create_engine('sqlite:///:memory:') - Сессия — рабочий интерфейс с БД: add → commit → close
- Логирование:
logging.getLogger('sqlalchemy.engine')
Установка: pip install SQLAlchemy
Топ-3 ошибки: 1) Забыть create_all(engine). 2) Не вызвать commit(). 3) Не закрыть сессию.
📖 О чём этот урок
В этом уроке изучается SQLAlchemy — мощная библиотека Python для работы с базами данных. Лекция охватывает два подхода (ORM и Core), настройку подключения, создание движка, работу с сессией, логирование событий и практические задачи.
Что изучим
- Что такое SQLAlchemy, ORM и Core — принципы и отличия
- Установка библиотеки и настройка строки подключения
- create_engine: подключение к PostgreSQL, MySQL, SQLite
- Сессия: жизненный цикл и состояния объектов
- Полный пример модели User с add/commit
- Логирование SQL-запросов через модуль logging
- Практические задачи: движок и сессия для SQLite :memory:
📚 Что повторить перед изучением
- ← Урок 04: Summary session 1 (повторение Flask и Pydantic)
- Базовые классы Python: наследование, атрибуты класса
- Что такое реляционные базы данных: таблицы, строки, столбцы, первичный ключ
- Работа с виртуальным окружением: venv, pip install
🎯 Что изучать дальше
- → Урок 06: Практикум 2 — SQLAlchemy на практике
- Запросы к БД: select(), filter(), order_by()
- Миграции базы данных с Alembic