В предыдущих двух уроках мы изучили SQL и научились создавать таблицы, добавлять, обновлять, удалять и выбирать данные с помощью команд CREATE, INSERT, UPDATE, DELETE, SELECT. Но писать SQL-запросы в виде строк внутри Python-кода неудобно, опасно (SQL-инъекции) и трудно поддерживать. На помощь приходит ORM (Object-Relational Mapping) — технология, которая позволяет работать с базой данных через Python-объекты, а не через SQL-строки. Вместо INSERT INTO users (name) VALUES ('Анна') вы пишете user = User(name='Анна'); session.add(user); session.commit(). Код становится чище, безопаснее и легче для поддержки.
В этом уроке мы познакомимся с SQLAlchemy — самой популярной ORM-библиотекой в мире Python. Вы узнаете, как установить SQLAlchemy и драйвер psycopg2 для PostgreSQL, как создать подключение к базе данных (engine), как объявлять модели данных (классы, соответствующие таблицам), как создавать таблицы из моделей. Мы подробно разберём все возможные типы колонок: Integer, String, Text, Boolean, DateTime, Float, Numeric, JSON, Enum и другие, а также научимся правильно их типизировать с помощью Mapped и mapped_column.