Workshop: пишем первый проект на FastAPI

Поделиться
HTML-код
  • Опубликовано: 2 фев 2021
  • Иван Гончарук из Antida software рассказал про библиотеку Pydantic и показал как быстро и просто создавать Web API, используя современные возможности Python.
    Воркшоп подойдёт как для начинающих разработчиков, так и для специалистов с опытом, не знакомых с технологией FastAPI.
    Исходный код приложения: github.com/mcferden/fastapi-w...
  • НаукаНаука

Комментарии • 56

  • @alexandravorobeva8681
    @alexandravorobeva8681 2 года назад +28

    Самое лучшее видео о Fast Api в русскоязычном сегменте!! Всё понятно, и очень подробно рассказанно! СПАСИБО ОГРОМНОЕ

  • @ZifeRRoT
    @ZifeRRoT 2 года назад +6

    Единственное видео где я понял как работать с fastapi, браво!

  • @user-fr9nn6zm9c
    @user-fr9nn6zm9c Год назад +5

    Иван, спасибо вам за ваш труд. Требуем больше видео с вашим участием! 😀

  • @alekseysharaputin9395
    @alekseysharaputin9395 3 года назад +16

    Видео очень полезное, вполне возможно самое лучшее на текущий момент для начинающих

  • @DKphotoru
    @DKphotoru 2 года назад +4

    Мега респект! Хотел в фастапи разобраться, а бонусом архитектуру подтянул и ещё кучу фишек-плюшек узнал!!! Огромное спасибо!!!

  • @exe88cution
    @exe88cution Год назад +1

    Очень круто получилось, всё понятно и много продвинутых фишек. Спасибо большое.

  • @OlegBedriy
    @OlegBedriy 2 года назад +6

    Недооценённый канал

  • @MrDnovik
    @MrDnovik Год назад

    Спасибо! Очень классный воркшоп. Четко, понятно, спокойно, с пояснениями!

  • @user-rn3xm1fz7i
    @user-rn3xm1fz7i Год назад

    Очень понравилось изложение материала. Спасибо за воркшоп.

  • @user-it3yo1sn6i
    @user-it3yo1sn6i 6 месяцев назад

    Круто, очень понравилась подача и материал!

  • @user-iq1pe1ip7x
    @user-iq1pe1ip7x 2 года назад +1

    Спасибо большое за такую подробность и понятность

  • @FoodMaks
    @FoodMaks 3 года назад +1

    Круто, спасибо. Ждём продолжения.

  • @evgeniylepikov6185
    @evgeniylepikov6185 3 года назад +2

    Очень познавательно, спасибо!

  • @andreych6610
    @andreych6610 Год назад

    Очень хорошее видео, спасибо Ивану.

  • @AlexandrSpirit
    @AlexandrSpirit 2 года назад +1

    Очень полезное видео. Большое спасибо

  • @user-ls3bl4xo2y
    @user-ls3bl4xo2y 9 месяцев назад

    Спасибо вам большое, было очень полезно и информативно!

  • @viktorsokolov8153
    @viktorsokolov8153 Год назад

    Блестяще сделано. Для закрепления туториала на официальном сайте идеально. И еще несколько полезных деталей, которых там не было. Огромное спасибо. И вопрос - можно ли было в dependencies поместить 4 раза повторяющееся в операциях получение экземпляра service. Если да, то как правильно это написать?

  • @klockkrasavec
    @klockkrasavec Год назад +1

    спасибо мужик💪🏻

  • @swimmwatch
    @swimmwatch 2 года назад

    Спасибо большое за видео! У меня есть один вопрос: зачем класс OperationKind наследуется сначала от строки, а потом от Enum? Почему недостаточно наследоваться только от Enum?

  • @coconut_punker
    @coconut_punker 3 года назад +1

    видос огнище

  • @oriontvv
    @oriontvv 3 года назад +3

    спасибо, тайп-хинты выглядят вкусно. в di сессия будет создаваться один раз или на каждый хендлер? идеи - добавить окружение для разработки, тесты, завернуть в докер

    • @mc.ferden
      @mc.ferden 3 года назад +1

      DI там очень простой - все зависимости создаются заново при каждом вызове хендлера, так что контроль времени жизни придется реализовывать вручную. Но во большинстве случаев это не требуется.
      За идеи спасибо, возьмем на вооружение для следующих воркшопов.

  • @yawneed
    @yawneed 2 года назад +4

    Пожалуйста в следующий раз сделайте шрифт больше, ничего же не видно

  • @omg-go4vf
    @omg-go4vf Год назад

    кайф, спасибо!

  • @user-yx4bo6qo9x
    @user-yx4bo6qo9x 2 года назад

    Почему мы на 1:02:12 как тип, возвращаемый методом get_list() указываем List[tables.Operation], если у нас есть модель pydantic, которая как раз и создана для того, чтобы указывать ее как тип?

  • @AlexandrSpirit
    @AlexandrSpirit 2 года назад

    В чём бонус использования Depends вместо Midlware для сессий?

  • @ilyachudakov7944
    @ilyachudakov7944 2 года назад

    Руками писать в базу через ПЧ - идея патологически неверная!

  • @luiscevallos1
    @luiscevallos1 2 года назад

    Do you have more videos about FastApi?

  • @lerkabishhhit
    @lerkabishhhit 2 года назад

    Может кто сталкивался и ещё может помочь. Пайчарм не выдаёт логи ювикорна, только при релоаде.

  • @pavels6563
    @pavels6563 11 месяцев назад

    Объясните пожалуйста, как посмотреть таблицу, из видео не понятны действия автора. Таблица у меня появилась, но нормально просмотреть не могу её

  • @michelecappelchi7599
    @michelecappelchi7599 7 месяцев назад

    Квк в pydantic V2 поменять orm_mode?

  • @sergeypushkovskiy5790
    @sergeypushkovskiy5790 3 года назад

    Отличное видео. Одно из лучших что есть по FastAPI на сегодняшний день. Вы бы могли создать что-то похожее для Django Rest Framework?

  • @user-gy3zd7mx3u
    @user-gy3zd7mx3u Год назад

    Не понял, зачем мы указываем в маршруте переменную в фигурных скобках?

  • @denistsur3060
    @denistsur3060 Год назад

    на 18-19 минуте как он там изменил Modyfy Run configuration, у меня там вообще все подругому. Это платная версия Пичарма,?

  • @ilyachudakov7944
    @ilyachudakov7944 2 года назад

    Кст а отчего в ПЧ не создали сразу проект FastAPI - и тебе виртуальное окружение, и базовые приложения и готовый main.py?

  • @VladisGadis
    @VladisGadis 2 года назад

    Здравствуйте! есть несколько вопросов!
    1) pydantic делает за нас валидацию входных данных. Эта валидация требует каких то доработок? Например если в поле даты написать не 2021-05-11 а 11-04-2021, то как это отвалидируется?
    2) За место DI можно же использовать декораторы? например сессию БД в декаратор? Это критично? Или всё же лучше использовать DI?

    • @AlexandrSpirit
      @AlexandrSpirit 2 года назад

      По пайдантику.
      Есть возможность добавить валидатор поля через декоратор валидации. Плюс, советую использовать библиотеку typing. Там же, в схемах вы можете задать как дескрипшины для полей, там и примеры.
      Я раньше работал с маршмеллоу во фласке. Пайдантик более удобный
      А вот с DI пока сам не сильно разобрался. Его во всю используют в Java, C#, C++ с которыми я не работал.

  • @everlastingsummer2044
    @everlastingsummer2044 10 месяцев назад

    если у вас бесплатная версия pycharm, то pycharm не поймет расширения sqlite3 (так как плагин на постгрес доступен только для платной версии), поэтому придется качать postgresql вместе с pgadmin и уже через него бд создавать

    • @chinyass
      @chinyass 10 месяцев назад

      не доступен расширение для конкретного IDE, значит меняем СУБД. Радикальненко :)

    • @everlastingsummer2044
      @everlastingsummer2044 10 месяцев назад

      @@chinyass а с sqlite3 варианты есть?

  • @ilyachudakov7944
    @ilyachudakov7944 2 года назад

    В целом полезно, однако пока не явно видны преимущества fastapi перед DRF - много также закопано в pydantic, также много магии.

    • @Fartek2
      @Fartek2 2 года назад

      в скорости преимущество и в ассинхронке

    • @ilyachudakov7944
      @ilyachudakov7944 2 года назад

      @@Fartek2 ну вот не видно явно этих преимуществ: скорость написания кода на DRF гораздо выше, orm хоть и не супер, но базовые вещи делает нормально, асинхронные запросы к БД давно завезли. Нормально спроектированый Джанго держит легко тысячи запросов. А fastapi?
      Вот это было бы круто изложить.
      Супер круто было бы с тестами.
      Именно сравнение, а не просто сферический конь в вакууме.

    • @Fartek2
      @Fartek2 2 года назад

      @@ilyachudakov7944 ну насчет написания кода - согласен, постоянное описание стандартных CRUD операция надоедает, асинхронку в дрф не пробовал - не могу сказать. А тесты если искать, то наверное на зарубежном ютубе, у нас такого не видел.

    • @ilyachudakov7944
      @ilyachudakov7944 2 года назад

      @@Fartek2 да их нигде толковых нету кроме голословных заявлений, что фантазии круче и могучее. Сложного-то вроде и нет ничего: сделать более менее рабочий проект и заспамить его запросами в разных режимах. А никто и не сделал.

  • @ilyachudakov7944
    @ilyachudakov7944 2 года назад

    Наверное понервничал, что не смог создать каталог для окружения при создании проекта :)
    Нужно было всего лишь создать пути :)

  • @luiscevallos1
    @luiscevallos1 2 года назад

    Please one video with JWT please

  • @alimuradov
    @alimuradov 2 года назад +2

    Не понял как у вас магически заработал Dotenv. Просто установили пакет создали файл .env и переменны подтянулись?

    • @alimuradov
      @alimuradov 2 года назад

      у меня без явного указания _secrets_dir не заработало

    • @serikkhankizatov4421
      @serikkhankizatov4421 2 года назад

      А как вы указали?

    • @shot2420
      @shot2420 10 месяцев назад

      нужно закинуть .env в тот же каталог где прописан наследуемый класс Settings

  • @user-mn8wz2bh9l
    @user-mn8wz2bh9l Год назад

    рассказываешь интересно, но произношение английского не очень, надо поработать. Например ВС ДЖИ АЙ, ПайДантик и т.д.)))

  • @shot2420
    @shot2420 11 месяцев назад

    Что-то не могу получить данные из базы. Выбивает ошибку 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