Как конвертировать SQLAlchemy в Pydantic и FastAPI

preview_player
Показать описание


Мощная связка FastAPI + SQLAlchemy + Pydantic.
0:00 - DTO модели Pydantic
4:00 - Без relationship
6:53 - С relationship
7:53 - JOIN
10:40 - Интерактивный фронтенд + FastAPI
Рекомендации по теме
Комментарии
Автор

Тебя приятно слушать, продолжай делать полезные видосы. Спасибо

romankuznetsov
Автор

Наконец-то! Наконец-то я узнала, как расшифровать DTO) вокруг все употребляют, но объяснить не могут))

Elena-uxkb
Автор

Замечательный курс! Но этого урока нет в плейлисте!

Ardbot
Автор

Искал медь, а нашел золото. Прекрасная серия уроков!
Артем, не планируете сделать курс по pydantic? В хорошем исполнении вообще ничего нет

Great_Ave
Автор

@artemshumeiko, подскажи, пожалуйста, а как конвертировать наоборот в БД модель? Ну либо наведи хотя бы где это искать. В доках пайдентика чет не нашел...

wildwelder
Автор

Планируешь ли ты создать курс по SQLAlchemy с задачами на Stepik? Я думаю, что такой курс был бы очень полезен, учитывая твой подход к обучению и отсутствия такого курса на просторах и-нета . И, вероятно, не только я столкнулся с нехваткой руконабивательных материалов по этой теме.

yurarusanovskii
Автор

а dataclass как сериализовать из модели?

sergeysergey
Автор

А если у нас 2 файла со схемами. Первый юзер, а 2 резюме.

Получается, что юзеру нужен класс резюме, а резюме класс юзера. Вот уже циклический импорт. Если не импортировать класс, то "UserDTO" не работает.
Только если оба в 1 файл засунуть, только тогда они будут работать.

В той же алхимии Mapped[] позволяет не указывать явный импорт класса.

dmitry-lzny
Автор

Что-то в асинхронной версии не идет 🤔MissingGreenlet

Fair-Wez
Автор

Делал всегда таким образом:

response = db.execute(запрос)
scalar = response.scalar()

return

Такой вариант может быть правильным?

ShugarDaddy
Автор

"Почему не dataclass'ы скажу в конце видео". Не сказал...

dimuha
Автор

Байт на комментарии про белую тему ide

max_zrn
Автор

Кто ловит такую же ошибку? Код полностью идентичен с репозиторием

2 validation errors for WorkersRelDTO
resumes.0.workload
Input should be 'parttime' or 'fulltime' [type=enum, 'fulltime'>, input_type=Workload]
resumes.1.workload
Input should be 'parttime' or 'fulltime' [type=enum, 'parttime'>, input_type=Workload]

Александр-ъощ
Автор

Если вы вместо id: int используете UUID, а в ДТО хотите str и ловите ошибку приведения, то мне помогло такое
from uuid import UUID
class WorkerDTO(WorkerAddDTO):
id: UUID

@field_validator("id")
def validate_uuids(cls, value):
if value:
return str(value)
return value

ez