📝 Задания: SQLAlchemy — движок, сессия, наполнение БД

⚡ Задания на сегодня

  1. Задача 1 (из лекции): создать движок для подключения к SQLite в памяти.
  2. Задача 2 (из лекции): создать сессию для работы с созданным движком.
  3. Задача 3: объявить модель User (id, name, age) и добавить пользователя в БД.
  4. Задача 4: настроить логирование SQL-запросов через модуль logging.

Полные решения — в разделе «Решения».

Задача 1 (из лекции): Создание движка

Цель: создать экземпляр движка для подключения к SQLite базе данных в памяти.

Создайте файл lesson05.py и напишите код, который:

  • Импортирует create_engine из sqlalchemy
  • Создаёт движок для подключения к SQLite в памяти (:memory:)
  • Выводит сообщение об успешном создании движка

Проверка: скрипт должен запускаться без ошибок.

Задача 2 (из лекции): Создание сессии

Цель: создать сессию для взаимодействия с базой данных, используя движок из задачи 1.

Продолжите файл lesson05.py:

  • Используйте движок из задачи 1
  • Создайте сессию через Session(engine) как контекстный менеджер
  • Внутри сессии выведите сообщение «Сессия открыта»

Проверка: скрипт должен запускаться без ошибок, сообщение должно выводиться.

Задача 3: Модель User и добавление данных

Цель: объявить модель, создать таблицу и добавить запись в БД.

Дополните lesson05.py:

  • Объявите базовый класс Base(DeclarativeBase)
  • Объявите модель User с полями: id (primary key), name (String 30), age (Integer) — как в примере лекции
  • Создайте таблицу через Base.metadata.create_all(engine)
  • Через сессию добавьте пользователя User(name='John Doe', age=30)
  • Выполните commit() и выведите id созданного пользователя

Проверка: после запуска в консоли должен появиться id нового пользователя (должно быть 1).

Задача 4: Логирование SQL-запросов

Цель: настроить вывод SQL-запросов в консоль через модуль logging.

Добавьте в начало lesson05.py (до создания движка):

  • Импортируйте модуль logging
  • Настройте базовое логирование: logging.basicConfig(level=logging.INFO)
  • Получите логгер 'sqlalchemy.engine' и установите ему уровень INFO

Проверка: при запуске в консоли должны появиться SQL-запросы вида CREATE TABLE и INSERT INTO.

Подсказка: решения всех задач с подробным объяснением — в разделе «Решения».