Почему мы на 1:02:12 как тип, возвращаемый методом get_list() указываем List[tables.Operation], если у нас есть модель pydantic, которая как раз и создана для того, чтобы указывать ее как тип?
Спасибо большое за видео! У меня есть один вопрос: зачем класс OperationKind наследуется сначала от строки, а потом от Enum? Почему недостаточно наследоваться только от Enum?
Блестяще сделано. Для закрепления туториала на официальном сайте идеально. И еще несколько полезных деталей, которых там не было. Огромное спасибо. И вопрос - можно ли было в dependencies поместить 4 раза повторяющееся в операциях получение экземпляра service. Если да, то как правильно это написать?
спасибо, тайп-хинты выглядят вкусно. в di сессия будет создаваться один раз или на каждый хендлер? идеи - добавить окружение для разработки, тесты, завернуть в докер
DI там очень простой - все зависимости создаются заново при каждом вызове хендлера, так что контроль времени жизни придется реализовывать вручную. Но во большинстве случаев это не требуется. За идеи спасибо, возьмем на вооружение для следующих воркшопов.
если у вас бесплатная версия pycharm, то pycharm не поймет расширения sqlite3 (так как плагин на постгрес доступен только для платной версии), поэтому придется качать postgresql вместе с pgadmin и уже через него бд создавать
Здравствуйте! есть несколько вопросов! 1) pydantic делает за нас валидацию входных данных. Эта валидация требует каких то доработок? Например если в поле даты написать не 2021-05-11 а 11-04-2021, то как это отвалидируется? 2) За место DI можно же использовать декораторы? например сессию БД в декаратор? Это критично? Или всё же лучше использовать DI?
По пайдантику. Есть возможность добавить валидатор поля через декоратор валидации. Плюс, советую использовать библиотеку typing. Там же, в схемах вы можете задать как дескрипшины для полей, там и примеры. Я раньше работал с маршмеллоу во фласке. Пайдантик более удобный А вот с DI пока сам не сильно разобрался. Его во всю используют в Java, C#, C++ с которыми я не работал.
@@Fartek2 ну вот не видно явно этих преимуществ: скорость написания кода на DRF гораздо выше, orm хоть и не супер, но базовые вещи делает нормально, асинхронные запросы к БД давно завезли. Нормально спроектированый Джанго держит легко тысячи запросов. А fastapi? Вот это было бы круто изложить. Супер круто было бы с тестами. Именно сравнение, а не просто сферический конь в вакууме.
@@ilyachudakov7944 ну насчет написания кода - согласен, постоянное описание стандартных CRUD операция надоедает, асинхронку в дрф не пробовал - не могу сказать. А тесты если искать, то наверное на зарубежном ютубе, у нас такого не видел.
@@Fartek2 да их нигде толковых нету кроме голословных заявлений, что фантазии круче и могучее. Сложного-то вроде и нет ничего: сделать более менее рабочий проект и заспамить его запросами в разных режимах. А никто и не сделал.
Что-то не могу получить данные из базы. Выбивает ошибку sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: operations [SQL: SELECT operations.id AS operations_id, operations.date AS operations_date, operations.kind AS operations_kind, operations.amount AS operations_amount, operations.description AS operations_description FROM operations] Хотя я в ___tablename__ указал имя operations
Самое лучшее видео о Fast Api в русскоязычном сегменте!! Всё понятно, и очень подробно рассказанно! СПАСИБО ОГРОМНОЕ
А с какими именно видео сравнивали?
Или просто брякнуть захотелось?
Видео очень полезное, вполне возможно самое лучшее на текущий момент для начинающих
Иван, спасибо вам за ваш труд. Требуем больше видео с вашим участием! 😀
Единственное видео где я понял как работать с fastapi, браво!
Мега респект! Хотел в фастапи разобраться, а бонусом архитектуру подтянул и ещё кучу фишек-плюшек узнал!!! Огромное спасибо!!!
Очень круто получилось, всё понятно и много продвинутых фишек. Спасибо большое.
Спасибо! Очень классный воркшоп. Четко, понятно, спокойно, с пояснениями!
Очень понравилось изложение материала. Спасибо за воркшоп.
Недооценённый канал
Круто, очень понравилась подача и материал!
Спасибо большое за такую подробность и понятность
Спасибо вам большое, было очень полезно и информативно!
Очень хорошее видео, спасибо Ивану.
Очень познавательно, спасибо!
Круто, спасибо. Ждём продолжения.
Очень полезное видео. Большое спасибо
Почему мы на 1:02:12 как тип, возвращаемый методом get_list() указываем List[tables.Operation], если у нас есть модель pydantic, которая как раз и создана для того, чтобы указывать ее как тип?
спасибо мужик💪🏻
Пожалуйста в следующий раз сделайте шрифт больше, ничего же не видно
Объясните пожалуйста, как посмотреть таблицу, из видео не понятны действия автора. Таблица у меня появилась, но нормально просмотреть не могу её
Do you have more videos about FastApi?
Спасибо большое за видео! У меня есть один вопрос: зачем класс OperationKind наследуется сначала от строки, а потом от Enum? Почему недостаточно наследоваться только от Enum?
Блестяще сделано. Для закрепления туториала на официальном сайте идеально. И еще несколько полезных деталей, которых там не было. Огромное спасибо. И вопрос - можно ли было в dependencies поместить 4 раза повторяющееся в операциях получение экземпляра service. Если да, то как правильно это написать?
Не понял, зачем мы указываем в маршруте переменную в фигурных скобках?
спасибо, тайп-хинты выглядят вкусно. в di сессия будет создаваться один раз или на каждый хендлер? идеи - добавить окружение для разработки, тесты, завернуть в докер
DI там очень простой - все зависимости создаются заново при каждом вызове хендлера, так что контроль времени жизни придется реализовывать вручную. Но во большинстве случаев это не требуется.
За идеи спасибо, возьмем на вооружение для следующих воркшопов.
Не понял как у вас магически заработал Dotenv. Просто установили пакет создали файл .env и переменны подтянулись?
у меня без явного указания _secrets_dir не заработало
А как вы указали?
нужно закинуть .env в тот же каталог где прописан наследуемый класс Settings
Квк в pydantic V2 поменять orm_mode?
на 18-19 минуте как он там изменил Modyfy Run configuration, у меня там вообще все подругому. Это платная версия Пичарма,?
да
В чём бонус использования Depends вместо Midlware для сессий?
Может кто сталкивался и ещё может помочь. Пайчарм не выдаёт логи ювикорна, только при релоаде.
видос огнище
Руками писать в базу через ПЧ - идея патологически неверная!
кайф, спасибо!
Кст а отчего в ПЧ не создали сразу проект FastAPI - и тебе виртуальное окружение, и базовые приложения и готовый main.py?
если у вас бесплатная версия pycharm, то pycharm не поймет расширения sqlite3 (так как плагин на постгрес доступен только для платной версии), поэтому придется качать postgresql вместе с pgadmin и уже через него бд создавать
не доступен расширение для конкретного IDE, значит меняем СУБД. Радикальненко :)
@@chinyass а с sqlite3 варианты есть?
Здравствуйте! есть несколько вопросов!
1) pydantic делает за нас валидацию входных данных. Эта валидация требует каких то доработок? Например если в поле даты написать не 2021-05-11 а 11-04-2021, то как это отвалидируется?
2) За место DI можно же использовать декораторы? например сессию БД в декаратор? Это критично? Или всё же лучше использовать DI?
По пайдантику.
Есть возможность добавить валидатор поля через декоратор валидации. Плюс, советую использовать библиотеку typing. Там же, в схемах вы можете задать как дескрипшины для полей, там и примеры.
Я раньше работал с маршмеллоу во фласке. Пайдантик более удобный
А вот с DI пока сам не сильно разобрался. Его во всю используют в Java, C#, C++ с которыми я не работал.
В целом полезно, однако пока не явно видны преимущества fastapi перед DRF - много также закопано в pydantic, также много магии.
в скорости преимущество и в ассинхронке
@@Fartek2 ну вот не видно явно этих преимуществ: скорость написания кода на DRF гораздо выше, orm хоть и не супер, но базовые вещи делает нормально, асинхронные запросы к БД давно завезли. Нормально спроектированый Джанго держит легко тысячи запросов. А fastapi?
Вот это было бы круто изложить.
Супер круто было бы с тестами.
Именно сравнение, а не просто сферический конь в вакууме.
@@ilyachudakov7944 ну насчет написания кода - согласен, постоянное описание стандартных CRUD операция надоедает, асинхронку в дрф не пробовал - не могу сказать. А тесты если искать, то наверное на зарубежном ютубе, у нас такого не видел.
@@Fartek2 да их нигде толковых нету кроме голословных заявлений, что фантазии круче и могучее. Сложного-то вроде и нет ничего: сделать более менее рабочий проект и заспамить его запросами в разных режимах. А никто и не сделал.
Please one video with JWT please
Наверное понервничал, что не смог создать каталог для окружения при создании проекта :)
Нужно было всего лишь создать пути :)
Отличное видео. Одно из лучших что есть по FastAPI на сегодняшний день. Вы бы могли создать что-то похожее для Django Rest Framework?
рассказываешь интересно, но произношение английского не очень, надо поработать. Например ВС ДЖИ АЙ, ПайДантик и т.д.)))
Что-то не могу получить данные из базы. Выбивает ошибку sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: operations
[SQL: SELECT operations.id AS operations_id, operations.date AS operations_date, operations.kind AS operations_kind, operations.amount AS operations_amount, operations.description AS operations_description
FROM operations]
Хотя я в ___tablename__ указал имя operations