FastAPI приложение | Redis + Docker

Sdílet
Vložit
  • čas přidán 5. 09. 2024
  • В этом видео я покажу Вам, как можно связать FastAPI и Redis, а так же обернуть все приложение в Docker контейнеры с последующей оркестрацией
    Ссылка на видео со структурой FastAPI приложения - • Архитектура FastAPI пр...
    Ссылка на репозиторий с кодом проекта - github.com/gee...

Komentáře • 44

  • @xewuss3750
    @xewuss3750 Před rokem +7

    Радует, когда видишь, что у других тоже не с первого раза получается )))

  • @bgs12
    @bgs12 Před 6 měsíci +3

    10 тыс просмотров на февраль 2024 года. Это успех! Давай ещё ролики про архитектуру FAST API

  • @ivan_inanych
    @ivan_inanych Před rokem +4

    Очень полезное видео полного развёртывания, понятно хоть, как и что друг с другом взаимодействует, было бы интересно посмотреть развёртывание какого-нибудь простенького, но полноценного веб-приложения с фронтом на вью или другом фрейме для фронта, и с бэком на fastapi или асинхронном flask, например, c авторизацией и, может даже, пагинацией

  • @annasmur4556
    @annasmur4556 Před rokem +2

    Спасибо за подробное и наглядное объяснение!

  • @andreynd
    @andreynd Před rokem +2

    Классное видео, спасибо! Если снимешь еще по теме торговых алгоритмов, с использованием продвинутых технологий вроде редиса и докера, посмотрю с большим интересом.

  • @citieslg
    @citieslg Před rokem

    Видео классное!!! Я в полном восторге! Приступаю к ручному копированию)

  • @alexeymatveev9031
    @alexeymatveev9031 Před rokem +1

    спасибо, очень здорово, хотелось бы посмотреть как это прикручивается к фронтенду

  • @rozovayautopiya
    @rozovayautopiya Před 4 měsíci

    Лучший

  • @user-it3yo1sn6i
    @user-it3yo1sn6i Před rokem

    интересное и полезное видео. странно что у канала так мало подписчиков

  • @lianakalpakchyan4454
    @lianakalpakchyan4454 Před 6 měsíci +1

    Greeaat❤❤❤
    Why just 2 videos?😢

  • @user-de9xw2bi8p
    @user-de9xw2bi8p Před rokem

    Спасибо вам большое , было очень полезно ;))

    • @tagirkhalilov8227
      @tagirkhalilov8227  Před rokem

      Привет! Рад, что видео было интересным для вас)

  • @deymonster2u
    @deymonster2u Před rokem +1

    Приветствую! Можешь сделать видео по интеграции в эту связку еще postgresql и pgadmin в docer-compose?

  • @isded1681
    @isded1681 Před rokem

    Архитектура похожа на архитектуру в Go

  • @aiornerok3931
    @aiornerok3931 Před rokem +2

    А еще видео будет?

    • @tagirkhalilov8227
      @tagirkhalilov8227  Před rokem +1

      Привет! Да, будет, сейчас собираю материалы для следующего ролика

  • @MB-mi4ed
    @MB-mi4ed Před rokem

    Вот бы еще грамотно asyncpg с pool в шаблон завести.

  • @user-vf7pc4tn9z
    @user-vf7pc4tn9z Před rokem

    о давай больше про микросервисы а rabbitmq знаешь?

  • @TheVenelo
    @TheVenelo Před rokem +1

    Правильно ли я понимаю, что events - startup и shutdown, что нужно сделать при старте приложения и что при его завершении? Пытаюсь понять нужно ли мне это использовать.
    Я low level в python. Первый раз увидел у кого то использование ... вместо pass.
    Так же написание осмысленных буковок в init файлы пакетов python, обычно какие ролики не смотрел обучающие никто особо не разбирал такое, но когда смотрел исходный код в библиотеках часто это видел и не особо понимал как с этим взаимодействовать, да и сейчас не сильно понимаю. Судя по всему в init файлы прописывают импорты, чтобы дальше в файле.py можно было проще импортировать(или вообще не импортировать) и использовать функции/методы класса.
    __routes__ это магический метод? как я понял они дефолтные типо __eq__, я не прав?
    Раздробленность проекта интересная.

    • @tagirkhalilov8227
      @tagirkhalilov8227  Před rokem +2

      Привет! Да, насчёт events ты все верно понял. А init файлы используют в основном для удобства импортирования, но они предоставляют гораздо больше возможностей, например, пара из них:
      1) Указание магического поля ___all___ для удобства импортивания модулей пакета через *
      2) Проверка зависимостей перед использованием пакета
      Насчёт __routes__ - это не магический атрибут, нижнее подчёркивание по бокам - это лишь синтактический сахар) Да и у магических методов/атрибутов - по 2 подчеркивания по бокам, а тут одно

    • @TheVenelo
      @TheVenelo Před rokem

      @@tagirkhalilov8227Спасибо за развернутый ответ!

  • @Dem0rey
    @Dem0rey Před rokem

    В конце видео вы показали способ получать сразу весь список пар, но по нему же будет не удобно искать, т.к. каждая пара это элемент списка, а не ключ и придется либо для более быстрого поиска все равно перепаковать все в словарь, либо же каждый раз пробегаться по всем элементам до тех пор пока не найдем запрошенную пару, или есть какие то более быстрые методы поиска по такому списку?

    • @tagirkhalilov8227
      @tagirkhalilov8227  Před rokem +2

      Привет! Воспользовавшись API Binance для получения списка всех пар, можно при помощи pydantic преобразовать полученный JSON в список словарей, а далее воспользовавшись функцией filter() получать данные нужной пары, например:
      list(filter(lambda currency: currency['symbol'] == 'BTCUSDT', currencyList))
      Где curencyList - это список словарей, полученный из JSON
      Этот однострочник вернет такой ответ:
      [{'symbol': 'BTCUSDT', 'price': '23681.28000000'}]

    • @Dem0rey
      @Dem0rey Před rokem

      @@tagirkhalilov8227 понял спасибо)

  • @degtuarevvladimir9559

    Если снимешь для Redash, буду очень благодарен 😊

  • @sashass099
    @sashass099 Před rokem

    Спасибо за отличные видео, неглядя лайк и подписка.
    Подскажи, в чем может быть проблема..
    Всё сделал как у тебя: структура, содержимое, уделил этому время. Всё запускается, но почему-то тупо не работают ивенты, которые запланированы в on_startup и on_loop_startup. Уже всё облазил, вроде бы всё соответствует твоему коду, но тупо не работают эти ивенты, ошибок никаких нет.
    Ссылки на binance переписал верно, в postmanе проверил.
    Может обновишь репозиторий в соответствии с кодом из этого видео?

    • @tagirkhalilov8227
      @tagirkhalilov8227  Před rokem +1

      Привет! Спасибо за фидбек) Вот ссылка на репозиторий - github.com/geekceo/FastAPI-app-Redis-Docker Если вдруг не поможет, то отпиши под этим комментом, свяжемся в тг и я помогу тебе

    • @sashass099
      @sashass099 Před rokem

      @@tagirkhalilov8227 всё ок уже, какая-то странная ерунда была с os.getenv(..) Спасибо за репозиторий!!! Давай больше видео, давай еще подконнектим sqlalchemy асинхронный и вообще эндпоинты асинхронные) Чтоб всё по красоте) И еще RabbitMQ / Celery а затем CI/CD вот это будет самый нужный стек игрушек)

    • @tagirkhalilov8227
      @tagirkhalilov8227  Před rokem

      Рад, что заработало) Да, у меня в планах как раз эти технологии. Но я хочу разбить это на несколько видео, чтобы не вываливать большой поток информации в одном огромном видео)

  • @fast_code
    @fast_code Před rokem +1

    Когда продолжение?

    • @tagirkhalilov8227
      @tagirkhalilov8227  Před rokem +1

      Привет! Очень загружен работой, очень надеюсь, что в ближайшие пару дней успею отснять и загрузить материал)

    • @fast_code
      @fast_code Před rokem

      @@tagirkhalilov8227 Круто, понимая сам загружен.
      Продолжай в том же духе, мне очень понравился твой подход к архитектуре.

  • @Chel1k7
    @Chel1k7 Před rokem

    А как тему пайчарма в vsc впихнуть?

    • @iswearican__
      @iswearican__ Před rokem

      я бы и не заметил, если бы не комент лол

    • @tagirkhalilov8227
      @tagirkhalilov8227  Před rokem

      Привет, вот это расширение для VCS marketplace.visualstudio.com/items?itemName=garytyler.darcula-pycharm

  • @ac130kz
    @ac130kz Před rokem

    fastapi utils не поддерживается уже 3 года

    • @tagirkhalilov8227
      @tagirkhalilov8227  Před rokem

      Привет! Но тем не менее в таких базовых примерах создания запланированных задач fastapi utils все ещё работает

    • @ac130kz
      @ac130kz Před rokem

      @@tagirkhalilov8227 ну такое, я бы не использовал такие библиотеки, у fastapi быстрый цикл разработки, это не джанго с дооолгими LTS. Как альтернатива - это портировать небольшими кусками в утилиты самому

  • @MDFireX5
    @MDFireX5 Před 9 měsíci

    Шакальное качество, тупо скипаю

  • @sergeydostovalov6180
    @sergeydostovalov6180 Před rokem +1

    Автор, если честно, то это не архитектура, а какая то жесть. Полностью статический класс сервера - это какое то мохровое древнее зло, зачем вам класс для него? Использование датаклассов подобным образом - издевательство над самой сутью датаклассов, просто кровь из глаз. Эвенты для выполнения периодических тасков бизнеслогики - это что-то с чем-то. Нейминг pkg internal - что ты такое? Писали раньше на го? Такое ощущение, что вы где то начитались антипатернов и решили так потролить общественность.

    • @ukratitelkisok9726
      @ukratitelkisok9726 Před rokem +1

      Нужно ответное видео "что не так" я бы глянул

    • @umni_kot
      @umni_kot Před rokem

      У вас есть репозиторий с примером FastApi проекта? Я бы глянул. Без негатива, посмотрел бы как лучше делать.

    • @misterex99
      @misterex99 Před rokem +1

      Что вам мешает сделать ролик как нужно и ответом сюда отправить? Он не претендует на идеальную архитектуру, это просто пример связки контейнеров и библиотек, чтоб у новичков было представление что и как работает в связке, а дальше люди посмотрят надо им это или нет, или просто возьмут другой фрейворк для своих нужд.