Урок 06. Практикум 2: Pydantic и SQLAlchemy
⚡ Кратко: Практикум 2 — закрепление Pydantic и SQLAlchemy
Этот урок — практикум на закрепление навыков Pydantic v2 и SQLAlchemy 2.x, изученных в уроках 03 и 05. Новый материал не вводится — только практика.
- Pydantic — моделирование (4 задачи): Event, UserProfile, Transaction, Appointment — с валидаторами и Field-ограничениями.
- Pydantic — найди ошибку (4 задачи): Product, User (email), Account (validate_assignment), Item (обязательный price).
- SQLAlchemy (7 задач): engine (MySQL/SQLite), модели User/Post/Address, сессия add/commit/delete, анализ ошибок.
- Ключевые конструкции:
@field_validator,Annotated[Decimal, Field(gt=0)],Field(pattern=...),EmailStr,ConfigDict,DeclarativeBase,Mapped,mapped_column,with Session(engine) as session:
Топ-3 ошибки: 1) Забыть @classmethod в @field_validator. 2) Не вызвать session.commit(). 3) Модель не наследуется от Base.
📖 О чём этот урок
Урок 06 — это практикум, а не лекция с новым материалом. Цель — закрепить знания о Pydantic и SQLAlchemy через 15 практических задач: написание моделей, добавление валидации, поиск ошибок в готовом коде.
Если что-то кажется незнакомым — загляни в Урок 03 (Pydantic) или Урок 05 (SQLAlchemy).
Что закрепляем
- Pydantic v2: BaseModel, @field_validator с @classmethod, Field-ограничения, EmailStr, Annotated, ConfigDict
- SQLAlchemy 2.x: create_engine, DeclarativeBase, Mapped/mapped_column, ForeignKey, relationship, Session
- Анализ типичных ошибок и их исправление
- Работа с сессией: add, commit, delete, query
📚 Что повторить перед изучением
- ← Урок 05: SQLAlchemy — модели и поля
- ← Урок 03: Библиотека Pydantic
- Базовые классы Python: наследование, декораторы, classmethod
- Что такое реляционные базы данных: таблицы, строки, первичный ключ, внешний ключ
🎯 Что изучать дальше
- → Урок 07: SQLAlchemy — запросы
- ORM-запросы: select(), filter(), order_by(), join()
- Миграции базы данных с Alembic