FastAPI приложение | Redis + Docker
Vložit
- čas přidán 5. 09. 2024
- В этом видео я покажу Вам, как можно связать FastAPI и Redis, а так же обернуть все приложение в Docker контейнеры с последующей оркестрацией
Ссылка на видео со структурой FastAPI приложения - • Архитектура FastAPI пр...
Ссылка на репозиторий с кодом проекта - github.com/gee...
Радует, когда видишь, что у других тоже не с первого раза получается )))
10 тыс просмотров на февраль 2024 года. Это успех! Давай ещё ролики про архитектуру FAST API
Очень полезное видео полного развёртывания, понятно хоть, как и что друг с другом взаимодействует, было бы интересно посмотреть развёртывание какого-нибудь простенького, но полноценного веб-приложения с фронтом на вью или другом фрейме для фронта, и с бэком на fastapi или асинхронном flask, например, c авторизацией и, может даже, пагинацией
Спасибо за подробное и наглядное объяснение!
Классное видео, спасибо! Если снимешь еще по теме торговых алгоритмов, с использованием продвинутых технологий вроде редиса и докера, посмотрю с большим интересом.
Видео классное!!! Я в полном восторге! Приступаю к ручному копированию)
спасибо, очень здорово, хотелось бы посмотреть как это прикручивается к фронтенду
Лучший
интересное и полезное видео. странно что у канала так мало подписчиков
Greeaat❤❤❤
Why just 2 videos?😢
Спасибо вам большое , было очень полезно ;))
Привет! Рад, что видео было интересным для вас)
Приветствую! Можешь сделать видео по интеграции в эту связку еще postgresql и pgadmin в docer-compose?
Архитектура похожа на архитектуру в Go
А еще видео будет?
Привет! Да, будет, сейчас собираю материалы для следующего ролика
Вот бы еще грамотно asyncpg с pool в шаблон завести.
о давай больше про микросервисы а rabbitmq знаешь?
Правильно ли я понимаю, что events - startup и shutdown, что нужно сделать при старте приложения и что при его завершении? Пытаюсь понять нужно ли мне это использовать.
Я low level в python. Первый раз увидел у кого то использование ... вместо pass.
Так же написание осмысленных буковок в init файлы пакетов python, обычно какие ролики не смотрел обучающие никто особо не разбирал такое, но когда смотрел исходный код в библиотеках часто это видел и не особо понимал как с этим взаимодействовать, да и сейчас не сильно понимаю. Судя по всему в init файлы прописывают импорты, чтобы дальше в файле.py можно было проще импортировать(или вообще не импортировать) и использовать функции/методы класса.
__routes__ это магический метод? как я понял они дефолтные типо __eq__, я не прав?
Раздробленность проекта интересная.
Привет! Да, насчёт events ты все верно понял. А init файлы используют в основном для удобства импортирования, но они предоставляют гораздо больше возможностей, например, пара из них:
1) Указание магического поля ___all___ для удобства импортивания модулей пакета через *
2) Проверка зависимостей перед использованием пакета
Насчёт __routes__ - это не магический атрибут, нижнее подчёркивание по бокам - это лишь синтактический сахар) Да и у магических методов/атрибутов - по 2 подчеркивания по бокам, а тут одно
@@tagirkhalilov8227Спасибо за развернутый ответ!
В конце видео вы показали способ получать сразу весь список пар, но по нему же будет не удобно искать, т.к. каждая пара это элемент списка, а не ключ и придется либо для более быстрого поиска все равно перепаковать все в словарь, либо же каждый раз пробегаться по всем элементам до тех пор пока не найдем запрошенную пару, или есть какие то более быстрые методы поиска по такому списку?
Привет! Воспользовавшись API Binance для получения списка всех пар, можно при помощи pydantic преобразовать полученный JSON в список словарей, а далее воспользовавшись функцией filter() получать данные нужной пары, например:
list(filter(lambda currency: currency['symbol'] == 'BTCUSDT', currencyList))
Где curencyList - это список словарей, полученный из JSON
Этот однострочник вернет такой ответ:
[{'symbol': 'BTCUSDT', 'price': '23681.28000000'}]
@@tagirkhalilov8227 понял спасибо)
Если снимешь для Redash, буду очень благодарен 😊
Спасибо за отличные видео, неглядя лайк и подписка.
Подскажи, в чем может быть проблема..
Всё сделал как у тебя: структура, содержимое, уделил этому время. Всё запускается, но почему-то тупо не работают ивенты, которые запланированы в on_startup и on_loop_startup. Уже всё облазил, вроде бы всё соответствует твоему коду, но тупо не работают эти ивенты, ошибок никаких нет.
Ссылки на binance переписал верно, в postmanе проверил.
Может обновишь репозиторий в соответствии с кодом из этого видео?
Привет! Спасибо за фидбек) Вот ссылка на репозиторий - github.com/geekceo/FastAPI-app-Redis-Docker Если вдруг не поможет, то отпиши под этим комментом, свяжемся в тг и я помогу тебе
@@tagirkhalilov8227 всё ок уже, какая-то странная ерунда была с os.getenv(..) Спасибо за репозиторий!!! Давай больше видео, давай еще подконнектим sqlalchemy асинхронный и вообще эндпоинты асинхронные) Чтоб всё по красоте) И еще RabbitMQ / Celery а затем CI/CD вот это будет самый нужный стек игрушек)
Рад, что заработало) Да, у меня в планах как раз эти технологии. Но я хочу разбить это на несколько видео, чтобы не вываливать большой поток информации в одном огромном видео)
Когда продолжение?
Привет! Очень загружен работой, очень надеюсь, что в ближайшие пару дней успею отснять и загрузить материал)
@@tagirkhalilov8227 Круто, понимая сам загружен.
Продолжай в том же духе, мне очень понравился твой подход к архитектуре.
А как тему пайчарма в vsc впихнуть?
я бы и не заметил, если бы не комент лол
Привет, вот это расширение для VCS marketplace.visualstudio.com/items?itemName=garytyler.darcula-pycharm
fastapi utils не поддерживается уже 3 года
Привет! Но тем не менее в таких базовых примерах создания запланированных задач fastapi utils все ещё работает
@@tagirkhalilov8227 ну такое, я бы не использовал такие библиотеки, у fastapi быстрый цикл разработки, это не джанго с дооолгими LTS. Как альтернатива - это портировать небольшими кусками в утилиты самому
Шакальное качество, тупо скипаю
Автор, если честно, то это не архитектура, а какая то жесть. Полностью статический класс сервера - это какое то мохровое древнее зло, зачем вам класс для него? Использование датаклассов подобным образом - издевательство над самой сутью датаклассов, просто кровь из глаз. Эвенты для выполнения периодических тасков бизнеслогики - это что-то с чем-то. Нейминг pkg internal - что ты такое? Писали раньше на го? Такое ощущение, что вы где то начитались антипатернов и решили так потролить общественность.
Нужно ответное видео "что не так" я бы глянул
У вас есть репозиторий с примером FastApi проекта? Я бы глянул. Без негатива, посмотрел бы как лучше делать.
Что вам мешает сделать ролик как нужно и ответом сюда отправить? Он не претендует на идеальную архитектуру, это просто пример связки контейнеров и библиотек, чтоб у новичков было представление что и как работает в связке, а дальше люди посмотрят надо им это или нет, или просто возьмут другой фрейворк для своих нужд.