Урок 06. Практикум 2: Pydantic и SQLAlchemy

📁 Блок: Flask ⏱️ Время изучения: ~60 мин 🎯 Сложность: Средняя
#pydantic #sqlalchemy #практикум #валидация #orm

⚡ Кратко: Практикум 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

📚 Что повторить перед изучением

🎯 Что изучать дальше