Тёмный

Базовое приложение на FastAPI | Каркас проекта FastAPI + SQLAlchemy (ascynio) + alembic 

Сурен Хоренян
Подписаться 8 тыс.
Просмотров 8 тыс.
50% 1

Рассказываю и показываю как начать работать с FastAPI, как выстроить проект, настроить работу с базой данных, миграции.
Вам это всё делать не обязательно, потому что код доступен:
github.com/mahenzon/FastAPI-b...
Поддержать выход роликов (зарплата монтажеру)
- на Boosty boosty.to/mahenzon
- на Sponsr sponsr.ru/suren/
- через Tinkoff (любые карты) tinkoff.ru/cf/6kbKWtKhapM
- через CloudTips pay.cloudtips.ru/p/9a8fa641
Ссылки на соцсети:
- Канал в ТГ t.me/Khorenyan - тут в чате обсуждаем технологии и ваш код
- Паблик в ВК SurenKhorenyan
- Дискорд / discord
- RU-vid: / @surenkhorenyan
- Второй канал на RU-vid: / @surenlife
- RuTube rutube.ru/u/Suren/
- Все ссылки taplink.cc/mahenzon
Метки:
00:00 О чем видео
01:05 Старт проекта: установка зависимостей и git векрсионирование
06:55 Почему я складываю внутрь папки приложения
09:07 Приложение на FastAPI
10:06 Запуск через PyCharm
12:12 Первый роутер
14:03 Базовая конфигурация
20:14 Подготовка к работе с СУБД Postgres через SQLAlchemy (asyncio)
39:20 Цикл жизни приложения
42:45 Переменные окружения в env файле
52:31 Базовая модель SQLAlchemy
57:53 Как создать модель и таблицу в БД
01:01:10 Настройка alembic для асинхронной алхимии
01:06:06 Автогенерация миграций
01:07:48 SQLA MetaData naming conventions
01:17:35 Настройка роутеров API Router и префиксов
01:20:54 Схемы pydantic
01:22:54 Взаимодействие API views с БД
01:29:05 Создание объекта
01:33:25 Доступно на GitHub
01:33:53 Ускорение работы с JSON
01:36:35 SQLA id mixin
01:38:22 keep folder
01:39:01 Как использовать репо
01:40:42 Итоги

Наука

Опубликовано:

 

19 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 95   
@user-ks6cn7or2c
@user-ks6cn7or2c Месяц назад
Теперь я усваиваю на 200% лучше. Синхронизация произошла!!! Такая подача - спокойный обычный разговор - the best! Спасибо, что учитываешь пожелания и рекомендации подписчиков.
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Кайф! Рад, что вы оценили! Супер, буду продолжать совершенствоваться 🥰
@knowledgedose1956
@knowledgedose1956 Месяц назад
на скорости 2х вообще будет 400%😂
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Хааа 😅
@adypzz
@adypzz Месяц назад
Вот это кайф! Спасибо огромное!🙏
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Пожалуйста! Рад, что понравилось
@artur.tokranov
@artur.tokranov Месяц назад
Сурен, спасибо большое за труды!
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Пожалуйста! Рад, что вы оценили
@Ctac7878
@Ctac7878 Месяц назад
Огромное спасибо за работу!!!!
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Пожалуйста! Очень приятно 🥰
@user-fp7kv4xd8l
@user-fp7kv4xd8l Месяц назад
Огромное спасибо, круто! Всё понятно, ёмко и по делу
@SurenKhorenyan
@SurenKhorenyan 29 дней назад
Класс, пожалуйста! Рад 😊
@MasterGroosha
@MasterGroosha Месяц назад
Отличное видео! Спасибо, Сурен!
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Пожалуйста! Рад, что вам понравилось!
@user-qp8hg4ds2b
@user-qp8hg4ds2b Месяц назад
Очень нравится контент твоего канала. Спасибо!
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Крутяк, я рад! Пожалуйста!
@yuriybukovskiy449
@yuriybukovskiy449 16 дней назад
Сурен, как всегда на высоте! Спасибо за проделанную работу!
@SurenKhorenyan
@SurenKhorenyan 16 дней назад
Кайф, пожалуйста!
@mister_Iks
@mister_Iks Месяц назад
Спасибо! Именно это сейчас мне нужно))
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Огонь! Пожалуйста!
@Qustoos
@Qustoos Месяц назад
Отличное видео, спасибо за контент!
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Пожалуйста! Рад, что понравилось 😊
@gomor1575
@gomor1575 Месяц назад
У тебя лучший курс по фаст апи на Ютубе. Сразу видно, что ты не просто прочитал документацию по фаст апи и записал курс, как минимум по тому, что ты знаешь, что f строка быстрее str(). Если было бы поменьше воды, то курс был бы идеален
@AHTOH_IO
@AHTOH_IO Месяц назад
Без воды он был бы сухим) Сурен чёткий!
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Спасибо! Хаа, а что вы относите к "воде"?
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Спасибо!
@AHTOH_IO
@AHTOH_IO Месяц назад
@@SurenKhorenyan что-то помимо кода, которое является "лирическим отступлением" Вообще её у Вас(тебя) мало! Вполне сжато и по-делу
@SurenKhorenyan
@SurenKhorenyan Месяц назад
@@AHTOH_IO а сваггер это тоже отступление? Там кода нет 😁
@3agoskin
@3agoskin Месяц назад
У тебя прекрасные видео, как вводные. В свое время меня очень испугала документация алхимии, а сейчас стал вопрос как строить бэкенд, который и на МЛ завязан, и вот все внимание сейчас ушло к пайтону, который я просто забросил. Вот отличные вводные, чтобы что-то попробовать с тобой собрать, получить базовую ментальную карту и дальше двигаться Видосы у тебя мего огромные, это большая работа в такой Ютьюб опенсорс, спасибо!
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Крутяк, пожалуйста! Спасибо огромное! Очень приятно 🥰
@rebelbait
@rebelbait 5 дней назад
Сурен, доброго времени суток, надеюсь это не последнее видео про FastAPI)
@SurenKhorenyan
@SurenKhorenyan 4 дня назад
Здравствуйте! Точно не последнее
@thisIsMine007
@thisIsMine007 28 дней назад
Вот этот видеоурок больше похож на основу frameworka Fast api чем предыдущие. Спасибо за труд и уделения времени
@SurenKhorenyan
@SurenKhorenyan 28 дней назад
Пожалуйста!
@IAmSavier
@IAmSavier Месяц назад
Отлично, сжато, без воды и все самое главное. Еще бы добавить сюда асинхронные тесты. Ну и можно линтеры (ну и black -> ruff)
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Спасибо! Согласен, только в такой ролик пока не влезает 😁
@welaskez4997
@welaskez4997 Месяц назад
сразу бросается в глаза что нет типовых «ээ» «аа», складная речь, респект
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Кайф! Очень приятно, что вы заметили 🥰
@hollowknight7180
@hollowknight7180 Месяц назад
Лучший! 😁
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Крутяк, спасибо!
@ufc_uz6
@ufc_uz6 Месяц назад
Круто❤
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Класс, спасибо!
@kopylov_vadik
@kopylov_vadik 22 дня назад
спасибо за материал ! Вы используете copilot в своей ide ?
@SurenKhorenyan
@SurenKhorenyan 22 дня назад
Пожалуйста! Нет, не использую. Подсказки встроенные в PyCharm (оффлайн автокомплит)
@ZlobniyTapoG
@ZlobniyTapoG 28 дней назад
Сурен, очень хотелось бы увидеть от тебя что-то подобное, но с реализацией архитектурного паттерна DDD, например.
@SurenKhorenyan
@SurenKhorenyan 28 дней назад
Привет. В ближайшее время не планирую. Можете заказать тему через подписку с уровнем Профессионал на бусти. Но там уже очередь на июнь, так что даже если сейчас оформите, будет не раньше июля или даже августа.
@krylovilya1
@krylovilya1 10 дней назад
Теперь ждём ролик по litestar)
@SurenKhorenyan
@SurenKhorenyan 10 дней назад
Ох, возможно. Но это пока не точно
@user-hz5nl3pl7o
@user-hz5nl3pl7o Месяц назад
Спасибо за видео, оч полезно. Ты сказал на 46:17 про монорепозиторий, и .env для каждого микросервиса в своем каталоге. А если 2 микросервиса и больше, как считаешь, какая бест практика по установке пакетов для каждого микросервиса? Переходить на pip requir*.txt для каждого микросервиса или в pyproject делать группы или extra для каждого микросервиса или что-то иное?
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Смотря как сильно будут разделены ваши микросервисы. Можно для каждого проекта сделать свой отдельный конфиг для зависимостей, угу
@K3NT_
@K3NT_ Месяц назад
Спасибо за видео. А как называется эта архитектура? Вообще какая архитектура лучше для fastapi? Что насчет clean архитектуры?
@SurenKhorenyan
@SurenKhorenyan 29 дней назад
Пожалуйста! Без понятия как называется 😅 Лучше та, с которой вам удобно работать 🙂
@kadzutokun
@kadzutokun 28 дней назад
Привет, Сурен Знаком с тобой больше года почти!) Благодаря твоим видео уловил принципы Django и далее нашел самостоятельно пути развития и устроился Джуном) Сейчас уж больно понравилось расширение для пуша в гит с одного файла, но с выбором изменений, не подскажешь есть ли такое же расширение для vs code?
@SurenKhorenyan
@SurenKhorenyan 28 дней назад
Привет. Круто! Вы большой молодец. Вы про какое расширение? В PyCharm и в VS Code встроенная работа с git. Я через него и работаю. Нет опции выбрать, какие изменения пушить. Если вы про переписывание истории, то я это сделал за кадром, чтобы не грузить зрителей
@kadzutokun
@kadzutokun 28 дней назад
@@SurenKhorenyan Нет, я про возможность не сразу пушить весь файл в гит, а выбирать строки кода через плюсик для пуша
@kadzutokun
@kadzutokun 28 дней назад
@@SurenKhorenyan Спасибо большое!) Продолжайте вести ваш канал, у вас здорово получается!)
@SurenKhorenyan
@SurenKhorenyan 27 дней назад
Для пуша или для коммита? Для коммита просто кликаю напротив строк
@SurenKhorenyan
@SurenKhorenyan 27 дней назад
Пожалуйста!
@MrEligos
@MrEligos Месяц назад
спс
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Пжл!
@popcorn_833
@popcorn_833 19 дней назад
Привет, спасибо за видео! Такой вопрос: Как правильно рассчитать poll_size для engine? И max_connections для postgres?
@SurenKhorenyan
@SurenKhorenyan 19 дней назад
Привет, пожалуйста! Ставьте как показал в видео и не парьтесь. Реальные значения надо получать опытным путём на конкретном проекте: давать нагрузку и смотреть, что и как происходит
@popcorn_833
@popcorn_833 19 дней назад
Какие средние значения у ваших проектах?
@SurenKhorenyan
@SurenKhorenyan 19 дней назад
@@popcorn_833 я показал как раз те, что обычно использую: 50 и 10 оверфлоу
@popcorn_833
@popcorn_833 19 дней назад
@@SurenKhorenyanСпасибо!
@SurenKhorenyan
@SurenKhorenyan 19 дней назад
@@popcorn_833 пожалуйста!
@thisIsMine007
@thisIsMine007 28 дней назад
Было бы еще лучьше, если еще по SQL-alchemy и pydantic дали бы бозовые понятия
@SurenKhorenyan
@SurenKhorenyan 28 дней назад
По алхимии в этом же плейлисте есть несколько видео
@romul23
@romul23 25 дней назад
не получается создать конфиг с подмоделью у которой в наименовании api - это глюк pydantic-settings. помогает только переименование.
@SurenKhorenyan
@SurenKhorenyan 25 дней назад
Ого! А покажите? У меня в примере работает же.. можете в чат в телеграм закинуть пример кода?
@Pr0xymate
@Pr0xymate 10 дней назад
Все хочется выучить и начать пользоваться FastAPI, но как же сильно отпугивает эта вся ручная настройка alembic/sqlalchemy... Как же все удобно и для людей сделано в джанго...
@SurenKhorenyan
@SurenKhorenyan 10 дней назад
Да, в Джанго очень удобно и легко, особенно поначалу. Вот для фастапи можете взять код из видео (ссылка на репозиторий в описании), и дальше делать всё что вам нужно
@Dmitriy_Pesk0ff
@Dmitriy_Pesk0ff Месяц назад
1:22:43 - Сурен, а как же дзен Python? "Явное лучше чем не явное"😊
@SurenKhorenyan
@SurenKhorenyan Месяц назад
А в чём противоречие? Если речь про from_attributes, я рассказываю как раньше было. Для тех, кто понимает боль, показанный пример актуален. Остальным по барабану, и можно не писать лишний код. Или вы про что-то другое?
@apostol_fet
@apostol_fet Месяц назад
Очень смущает использование глобальной переменной settings
@SurenKhorenyan
@SurenKhorenyan Месяц назад
Если вас смущает, можете просто в каждом модуле, где нужно взять настойки, инициализировать экземпляр настроек заново. Только зачем? Что вы так сэкономите, какую проблему решите? Лишняя работа и только
@user-mq3pj2om8u
@user-mq3pj2om8u 21 день назад
@@SurenKhorenyan Привет спасибо за труд! а если создать функцию get_settings() под декоратором lru_cache? Я не в коем случае не хочу умничать)) Просто порой бывает сложно понять как лучше сделать(видел множство примеров и часто люди делают по разному), без функции выглядит лаконичнее))
@SurenKhorenyan
@SurenKhorenyan 21 день назад
@@user-mq3pj2om8u так можно сделать (технически да, я такое даже встречал в продакшне). Только зачем? А итоге всё равно будет один и тот же экземпляр, только его ещё и получать нужно будет через функцию, а не через готовую переменную. Лишняя работа, которая ничему не помогает
Далее
🎙ПОЮ твои ЛЮБИМЫЕ ПЕСНИ 🌇
3:11:38
ЛУЧШИЙ ПОВЕРБАНК ОТ XIAOMI
0:39
Просмотров 16 тыс.
Gizli Apple Watch Özelliği😱
0:14
Просмотров 2,5 млн