Workshop: пишем первый проект на FastAPI
HTML-код
- Опубликовано: 2 фев 2021
- Иван Гончарук из Antida software рассказал про библиотеку Pydantic и показал как быстро и просто создавать Web API, используя современные возможности Python.
Воркшоп подойдёт как для начинающих разработчиков, так и для специалистов с опытом, не знакомых с технологией FastAPI.
Исходный код приложения: github.com/mcferden/fastapi-w... - Наука
Самое лучшее видео о Fast Api в русскоязычном сегменте!! Всё понятно, и очень подробно рассказанно! СПАСИБО ОГРОМНОЕ
Единственное видео где я понял как работать с fastapi, браво!
Иван, спасибо вам за ваш труд. Требуем больше видео с вашим участием! 😀
Видео очень полезное, вполне возможно самое лучшее на текущий момент для начинающих
Мега респект! Хотел в фастапи разобраться, а бонусом архитектуру подтянул и ещё кучу фишек-плюшек узнал!!! Огромное спасибо!!!
Очень круто получилось, всё понятно и много продвинутых фишек. Спасибо большое.
Недооценённый канал
Спасибо! Очень классный воркшоп. Четко, понятно, спокойно, с пояснениями!
Очень понравилось изложение материала. Спасибо за воркшоп.
Круто, очень понравилась подача и материал!
Спасибо большое за такую подробность и понятность
Круто, спасибо. Ждём продолжения.
Очень познавательно, спасибо!
Очень хорошее видео, спасибо Ивану.
Очень полезное видео. Большое спасибо
Спасибо вам большое, было очень полезно и информативно!
Блестяще сделано. Для закрепления туториала на официальном сайте идеально. И еще несколько полезных деталей, которых там не было. Огромное спасибо. И вопрос - можно ли было в dependencies поместить 4 раза повторяющееся в операциях получение экземпляра service. Если да, то как правильно это написать?
спасибо мужик💪🏻
Спасибо большое за видео! У меня есть один вопрос: зачем класс OperationKind наследуется сначала от строки, а потом от Enum? Почему недостаточно наследоваться только от Enum?
видос огнище
спасибо, тайп-хинты выглядят вкусно. в di сессия будет создаваться один раз или на каждый хендлер? идеи - добавить окружение для разработки, тесты, завернуть в докер
DI там очень простой - все зависимости создаются заново при каждом вызове хендлера, так что контроль времени жизни придется реализовывать вручную. Но во большинстве случаев это не требуется.
За идеи спасибо, возьмем на вооружение для следующих воркшопов.
Пожалуйста в следующий раз сделайте шрифт больше, ничего же не видно
кайф, спасибо!
Почему мы на 1:02:12 как тип, возвращаемый методом get_list() указываем List[tables.Operation], если у нас есть модель pydantic, которая как раз и создана для того, чтобы указывать ее как тип?
В чём бонус использования Depends вместо Midlware для сессий?
Руками писать в базу через ПЧ - идея патологически неверная!
Do you have more videos about FastApi?
Может кто сталкивался и ещё может помочь. Пайчарм не выдаёт логи ювикорна, только при релоаде.
Объясните пожалуйста, как посмотреть таблицу, из видео не понятны действия автора. Таблица у меня появилась, но нормально просмотреть не могу её
Квк в pydantic V2 поменять orm_mode?
Отличное видео. Одно из лучших что есть по FastAPI на сегодняшний день. Вы бы могли создать что-то похожее для Django Rest Framework?
Не понял, зачем мы указываем в маршруте переменную в фигурных скобках?
на 18-19 минуте как он там изменил Modyfy Run configuration, у меня там вообще все подругому. Это платная версия Пичарма,?
да
Кст а отчего в ПЧ не создали сразу проект FastAPI - и тебе виртуальное окружение, и базовые приложения и готовый main.py?
Здравствуйте! есть несколько вопросов!
1) pydantic делает за нас валидацию входных данных. Эта валидация требует каких то доработок? Например если в поле даты написать не 2021-05-11 а 11-04-2021, то как это отвалидируется?
2) За место DI можно же использовать декораторы? например сессию БД в декаратор? Это критично? Или всё же лучше использовать DI?
По пайдантику.
Есть возможность добавить валидатор поля через декоратор валидации. Плюс, советую использовать библиотеку typing. Там же, в схемах вы можете задать как дескрипшины для полей, там и примеры.
Я раньше работал с маршмеллоу во фласке. Пайдантик более удобный
А вот с DI пока сам не сильно разобрался. Его во всю используют в Java, C#, C++ с которыми я не работал.
если у вас бесплатная версия pycharm, то pycharm не поймет расширения sqlite3 (так как плагин на постгрес доступен только для платной версии), поэтому придется качать postgresql вместе с pgadmin и уже через него бд создавать
не доступен расширение для конкретного IDE, значит меняем СУБД. Радикальненко :)
@@chinyass а с sqlite3 варианты есть?
В целом полезно, однако пока не явно видны преимущества fastapi перед DRF - много также закопано в pydantic, также много магии.
в скорости преимущество и в ассинхронке
@@Fartek2 ну вот не видно явно этих преимуществ: скорость написания кода на DRF гораздо выше, orm хоть и не супер, но базовые вещи делает нормально, асинхронные запросы к БД давно завезли. Нормально спроектированый Джанго держит легко тысячи запросов. А fastapi?
Вот это было бы круто изложить.
Супер круто было бы с тестами.
Именно сравнение, а не просто сферический конь в вакууме.
@@ilyachudakov7944 ну насчет написания кода - согласен, постоянное описание стандартных CRUD операция надоедает, асинхронку в дрф не пробовал - не могу сказать. А тесты если искать, то наверное на зарубежном ютубе, у нас такого не видел.
@@Fartek2 да их нигде толковых нету кроме голословных заявлений, что фантазии круче и могучее. Сложного-то вроде и нет ничего: сделать более менее рабочий проект и заспамить его запросами в разных режимах. А никто и не сделал.
Наверное понервничал, что не смог создать каталог для окружения при создании проекта :)
Нужно было всего лишь создать пути :)
Please one video with JWT please
Не понял как у вас магически заработал Dotenv. Просто установили пакет создали файл .env и переменны подтянулись?
у меня без явного указания _secrets_dir не заработало
А как вы указали?
нужно закинуть .env в тот же каталог где прописан наследуемый класс Settings
рассказываешь интересно, но произношение английского не очень, надо поработать. Например ВС ДЖИ АЙ, ПайДантик и т.д.)))
Что-то не могу получить данные из базы. Выбивает ошибку 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