УРОКИ FASTAPI НА БОЕВОМ СЕРВИСЕ 3. РЕАЛИЗАЦИЯ ENDPOINTS ДЛЯ УПРАВЛЕНИЯ ДАННЫМИ ПОЛЬЗОВАТЕЛЯ + ТЕСТЫ

preview_player
Показать описание
В этом ролике поговорим и реализуем функционал для управления данными по каждому пользователю и покроем его тестами.

00:00 Введение
01:26 Где мы сейчас находимся и что будем делать?
07:28 Реализация хэндлера удаления пользователя
18:48 Тесты на хэндлер удаления пользователя
27:50 Реализация хэндлера для получения информации о пользователе
32:24 Тесты на хэндлер для получения информации о пользователе
34:50 Реализация хэндлера для изменения данных о пользователел
53:10 Тесты на хэндлер для изменения данных о пользователе
01:01:50 Заключение

Хэш актуального коммита - 42a019ae1659f49fec9056c9a9934a2cc8db4327

Поддержать:

На других платформах:

#ityoutubers #ityoutubersru
Рекомендации по теме
Комментарии
Автор

Николай, твой американ эксент ис фебьюлос, но лоейр - это адвокат, а в нашем случае это лэйер=)

anotheraleks
Автор

что касается обновления объекта я всегда в проектах обязательно использую полную модель и метод пут(иначе как какое-то поле изменить в null) а патч как у тебя опционально. Еще не люблю использовать kwargs т.к. явное лучше не явного, почему бы не прокинуть до дала дтошку(пайдантик модельку) и в самом query сделать **item.dict() указав тайпхинтинг itema

antonzuzlov
Автор

Не работает pytest, если сделать как в видео

Alexey-brzk
Автор

я почитал на гитхабе комит. OG content

extendomerc
Автор

почему в pydantic моделях не использовать Field для валидации?

dedinside
Автор

Тогда при каждом запуске тестов будет создаваться новый пустой файл миграции?

iokpjmz
Автор

Кто-нибудь шарит в CI при помощи GitHub Actions? Как изменить файл workflow так, чтобы он сжирал нормально все импорты? Ругается на модуль settings, ModuleNotFoundError пишет

dgrgrkk
Автор

Не лучше ли вместо Union[User, None] использовать Optional[User]? Это ведь одно и то же, но второе чуть покрасивее

iftorstov
Автор

0. delete - выходит по факту update, значит лишний метод, можно просто во вьюхе сразу вызывать апдейт.
1. if not None: fetch_one()[0] == scalar()
2. where(_and(exp1, exp2)) == where(exp1, exp2)
3. И вообще, чего все носятся с этой алхимией, на каждом шагу влево-вправо втыкаешься в greenleet, runtime, interface и прочие Error.

xewuss
Автор

Словил ошибку, что Optional[EmailStr] не пропускает валидация, если поле email в body отсутствует.

Сработал такой код:
class UpdateUserRequest(BaseModel):
f_name: = None
l_name: = None
email: Optional[EmailStr] = None

moderaptor