Пет-проект на Python за 50 минут. Курс по FastAPI для начинающих [2024]

Разбор фреймворка FastAPI на языке Python с первых строчек до деплоя на реальный сервер.
Текстовая версия: slc.tl/5nqib
Облачный сервер для ваших проектов: slc.tl/3c00t
💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gxT 💡
Предзапись на курс по поиску работы разработчику и техническим навыкам для Middle: forms.gle/Zw7bPnQvTsfekVH47
Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot
Пишу про лайфхаки при поиске работы, рынок труда и способы развития разработчиков в телеграм канале - подписывайся: t.me/artemshumeiko
Python сообщество в телеграме (здесь тебе помогут с любым вопросом): t.me/python_community_rus
Полезные материалы для бэкендера в моем телеграм боте: t.me/ArtemShumeikoBot
Поддержать меня и получить ранний доступ к видео можно здесь: boosty.to/artemshumeiko
Ссылка на репозиторий здесь: t.me/artemshumeiko/64
0:00 - Для чего используется FastAPI
2:39 - Как написать простейшее приложение на FastAPI
6:26 - Как применять Pydantic в FastAPI
11:48 - Как работать с базой данных из FastAPI
19:44 - Как делать запросы к базе данных через паттерн репозиторий
26:37 - Что такое роутер в FastAPI
34:23 - Как развернуть FastAPI приложение через Docker
39:02 - Как развернуть FastAPI приложение на реальный сервер в облаке
#backend #python #fastapi #фастапи #pydantic #шумейко

Пікірлер: 96

  • @artemshumeiko
    @artemshumeiko3 ай бұрын

    💡 Попробуй онлайн-тренажёр для подготовки к техническому собеседованию: clck.ru/3B5gwP 💡 Забирай роадмап изучения самого востребованного фреймворка на Python - FastAPI здесь: t.me/ArtemShumeikoBot

  • @AAShakirov
    @AAShakirov2 ай бұрын

    Как же круто! Все понятно, четко структурированно, речь грамотная, смотреть и слушать приятно! Спасибо огромное за урок!

  • @endfine9230
    @endfine92303 ай бұрын

    Первый ютубер которого смотрел на 0.8-0.9х 😂 Спасибо за годные курсы!

  • @andreypopov4916

    @andreypopov4916

    Ай бұрын

    То же самое: первый раз ставил на 0.75 подобный урок. Обычно ставлю на 1.25 -1.5.

  • @---fc8jp
    @---fc8jp3 ай бұрын

    Благодарю за труды. Вы помогаете сориентироваться в открытом океане информации. Пойдёшь не туда и пару дней впустую ))

  • @nazarzimarev8657
    @nazarzimarev8657Күн бұрын

    Сделал небольшой апишник на FastAPI(типа заеженного блога, но со своими приколами, по типу аунтефикации через токены и т. д), удивился насколько всё легко и круто, прям понравился процесс. Буквально за часов 5, понял как тут всё функционирует, с кайфом пишу

  • @sanjarkhamrakulov1152
    @sanjarkhamrakulov11523 ай бұрын

    Спасибо огромное за вашы видео. прошу продолжайте выпускать видео!!!

  • @alexturner6417
    @alexturner64173 ай бұрын

    Отличнейшее видео для начинающих фастаперов! Рекомендейшн! 5 звезд, благодарочка и пожелание удачи!

  • @extressar679
    @extressar6793 ай бұрын

    Иногда хочется и контента для уже не совсем начинающих, может какие то средние проекты или фишки/лайфхаки, у тебя хорошая подача так что будет интересно посмотреть

  • @silverguard3638

    @silverguard3638

    3 ай бұрын

    Это есть в его платном курсе) Сам прошел доволен как слон. На работе переделываю некоторые проекты сейчас на FastApi

  • @user-mn7lg2wp6i
    @user-mn7lg2wp6iАй бұрын

    Замечательный туториал! Сам ML-разработчик - решил иучить FastAPI, т.к. вижу, что фреймворк очень популярен. Было бы очень круто, если бы выша серия про FastAPI + ML

  • @user-ew2qs9my3s

    @user-ew2qs9my3s

    Ай бұрын

    Сам устраиваюсь после вуза в лабораторию машинного обучения, поэтому интересно поинтересоваться, а для чего вам технологии web-разработки?

  • @FlexSyde
    @FlexSydeАй бұрын

    Блин с твоей подачей бы хотел курс про докер послушать, прикольно рассказываешь. Да и в целом про деплой и ci/cd штучки

  • @plus_stick
    @plus_stick26 күн бұрын

    Спасибо! Благодаря тебе я смог написать свое первое работающее приложение на react с серверной частью на fastapi. Жду новых видео. Продолжай снимать, пожалуйста!

  • @artemshumeiko

    @artemshumeiko

    26 күн бұрын

    очень рад! спасибо если интересен фуллстак, обязательно сниму еще кое-что на реакт или вью

  • @Anonim-im6ln
    @Anonim-im6ln3 ай бұрын

    Супер!❤

  • @GeniusGS-ko4nt
    @GeniusGS-ko4nt3 ай бұрын

    Обожаю видосы твои, слушать очень приятно!!!😁

  • @artemshumeiko

    @artemshumeiko

    3 ай бұрын

    спасибо!

  • @happydeveloper752
    @happydeveloper7523 ай бұрын

    Спасибо за видео! 11:05 Нужно обратить внимание, в видео не говориться, когда в параметрах функции используется Annotated[STaskAdd, Depends()], в запросе post, то он использует query Params, вместо body Params.

  • @salahytus
    @salahytusАй бұрын

    СПАСИБО ВАМ ОГРОМНОЕ!

  • @artemshumeiko

    @artemshumeiko

    Ай бұрын

    пожалуйста) приятно слышать

  • @OLEGAROS
    @OLEGAROSАй бұрын

    спасибо) очень познавательно)

  • @artemshumeiko

    @artemshumeiko

    Ай бұрын

    спасибо! успехов в изучении

  • @torrettogreenwich4681
    @torrettogreenwich46813 ай бұрын

    🔥 лучший

  • @user-lt5qw6br5w
    @user-lt5qw6br5w3 ай бұрын

    Спасибо!

  • @sanjarkhamrakulov1152
    @sanjarkhamrakulov11523 ай бұрын

    Спасибо

  • @seduelgames8765
    @seduelgames87653 ай бұрын

    Cool!!!

  • @cryptokrupt
    @cryptokrupt3 ай бұрын

    от слова 'тасочки/-а' чуть нервный срыв не случился

  • @tru3ty209
    @tru3ty2093 ай бұрын

    Вопрос не по теме ролика: как с помощью подключения fastapi_users роутера у нас получаются post запросы в swager(fastapi/docs). Просто я ломаю голову и не понимаю. Обычно,создавая роутер мы в файле прописываем все нужные нам post , get, и др. Я смотрел зависимости, изучал документацию, там ничего путного не написано. Просто хочу реализовать форму для аутентификации на фронте, и чтобы данные передавались в нужный /auth/jwt/ post запрос UPD: Про swager я имел ввиду доки fastapi

  • @etsdev
    @etsdev19 күн бұрын

    26:10 Выделяешь нужный участок кода, жмешь F6 (или через контекстное меню Refactor -> Move) и просто указываешь, в какой файл переместить, PyCharm сам все перетащит и импорты обновит

  • @pavelnikiforov235
    @pavelnikiforov2353 ай бұрын

    Спасибо за качественные обучающие видео! Было бы очень интересно еще интеграция ML и Fastapi👍

  • @suspiciousgoose7904
    @suspiciousgoose79042 ай бұрын

    Очень полезный ролик! Спасибо! Все сделал, все работает) хочу сделать свое приложение. Следующие шаги: подключить posgresql и фронт

  • @artemshumeiko

    @artemshumeiko

    2 ай бұрын

    спасибо большое! очень рад, что вам понравилось скоро на канале будет больше видео для новичков, в том числе по фронтенду

  • @chokave
    @chokave2 күн бұрын

    Спасибо за урок!!! На 11:38 возникает проблема: module 'asyncio.tasks' has no attribute 'append' - что я делаю не так? РЕШИЛОСЬ с помощью текстовой версии. Спасибо!

  • @user-kt4yy5cf5e
    @user-kt4yy5cf5e3 ай бұрын

    11:35 при использовании депендс в схеме для пост запроса, то параметры передаются в квери а не боди а значит урезаются в количетсве символов передачи и они не кодируются и тем самым видны всем, так что при использовании схемы в методе пост не желательно использовать депендс для создания можно как дополнительные параметры для создания объекта

  • @artemshumeiko

    @artemshumeiko

    3 ай бұрын

    хорошее замечание, спасибо

  • @user-rn8kt4ui1b
    @user-rn8kt4ui1b3 ай бұрын

    Ml + Fast api очень интересно

  • @user-wq4qo2yn7g
    @user-wq4qo2yn7gКүн бұрын

    Подскажите, пожалуйста. Хоть unicorn перезагружается, но иногда походу где-то висит...и хоть что не делай работает по старому. Только ребут помогает, как убрать такое

  • @alexen5465
    @alexen5465Ай бұрын

    docs не открывается. ошибки выдает Failed to load API definition.

  • @user-yj8kp1kx6x
    @user-yj8kp1kx6x3 ай бұрын

    Для более правильногго создания фастапи приложения используя паттерн репозиторий так же можно создать базовый абстрактный класс BaseRepo, от которого будут наследоваться конретные репозитории и там описать CRUD методы

  • @hovharoyan3262
    @hovharoyan32623 ай бұрын

    Спасибо большое)Про alembic будет видео?)

  • @artemshumeiko

    @artemshumeiko

    3 ай бұрын

    Уже есть kzread.info/dash/bejne/hXhqwaeJl5Onoc4.html

  • @Roman-kn7kt
    @Roman-kn7kt3 ай бұрын

    Привет, как всегда вы невероятно круто объясняете! а можно попросить вас сделать туториал, возможна за плату по NGINX для разработки Fullstack application based on FastAPI

  • @danielcrigan1301
    @danielcrigan1301Ай бұрын

    хороший гайд! спасибо! Вопрос: как настроить PyCharm когда прописываешь атрибуты, функий и.т.д Pycharm автоматически импортировал модули ?

  • @artemshumeiko

    @artemshumeiko

    Ай бұрын

    Нужно работать внутри виртуального окружения и активировать его внутри PyCharm’а

  • @user-wh7hm2lx7t
    @user-wh7hm2lx7t3 ай бұрын

    Привет, классный курс, не хочешь разобрать такую тему как RBAC + FastAPI, на русском видосы почти не нашел))

  • @user-tn8qm6qq8r
    @user-tn8qm6qq8r3 ай бұрын

    у меня в репозитории, когда я таски сериализую с Pydantic, через model_validate, выдаёт ошибку. Это может быть связано с тем, что я в модельке в ORM поля задаю не при помощи Mapped, а при помощи Column?

  • @artemshumeiko

    @artemshumeiko

    3 ай бұрын

    нет, разница быть не должно Можете задать вопрос и прикрепить скриншоты в нашем Python сообществе: t.me/python_community_rus Вам помогут с вопросом

  • @Leha_from_Zavod

    @Leha_from_Zavod

    3 ай бұрын

    @@artemshumeiko Артем, очень заинтересовал вопрос подключения платежных систем(Freekassa, Enotio, Sberpay) в микросервис e-commerce реализованный на fastapi.Нашел только связку fastapi+Stripe, но cистема не работает в РФ, можно где то найти шаблон реализации?

  • @busipac1467

    @busipac1467

    3 ай бұрын

    То же самое

  • @vovchic3593

    @vovchic3593

    3 ай бұрын

    Добавьте в STask model_config = ConfigDict(from_attributes=True)

  • @user-hr3ij5zf5h
    @user-hr3ij5zf5h2 ай бұрын

    Привет, а что за плагин, что подсвечивает сколько раз использован класс?

  • @artemshumeiko

    @artemshumeiko

    2 ай бұрын

    Это видимо только в Professional версии PyCharm

  • @kochenof
    @kochenof3 ай бұрын

    Привет. Можешь поделиться знаниями по CD/CI?

  • @artemshumeiko

    @artemshumeiko

    3 ай бұрын

    да, планирую в будущем показать как самостоятельно сделать CI/CD для своего сервера

  • @mikeb4118
    @mikeb411817 күн бұрын

    Привет. Возникает такая ошибка, вроде весь синтаксис перепроверил, но не могу найти где проблема: Input should be a valid dictionary or instance of STask [type=model_type, input_value=, input_type=TaskOrm]. Возникает, когда запрос GET отправляешь.

  • @artemshumeiko

    @artemshumeiko

    17 күн бұрын

    досмотрите до конца пожалуйста, там есть решение, или загляните в гитхаб с кодом проекта Вкратце, мы забыли добавить атрибут model_config = ConfigDict(from_attributes=True) в TaskOrm

  • @rimashi1089
    @rimashi1089Ай бұрын

    Здравствуйте, Артем, такие два вопроса, я посмотрел ваши видео по fastapi , как раз писал одностраничный "фоторедактор" и у меня такие вопросы. Я передаю файл и ещё один параметр num в formData при помощи ajax, как мне считать данные из этой формы, так чтобы там загрузить файл на сервер и вытащить num? И как можно создать ссылку на файл на сервере? Я имею ввиду то, что вот произошли преобразования с изображением, оно сохранилось, я получил его filename и как теперь сделать так, чтобы он(файл) отобразился на клиенте? По аналогии с нодой я создал отдельный роут гет для отображения файлов с fileResponse и отдельно создаю ссылку таким же методом. Однако она даже как будто не подставляется в стили... Я написал, чтобы картинка была в background и подставляю ее при помощи jQuery, хочу сказать, что если пользователь меняет файлики, то все работает Буду невероятно признателен, если поможете, неделю сижу, ничего толком не нашел

  • @artemshumeiko

    @artemshumeiko

    Ай бұрын

    Для парсинга данных из FormData на стороне FastAPI нужен Form(). Дока тут: fastapi.tiangolo.com/tutorial/request-forms/?h=form Про картинку не до конца понял. Картинку можно сохранить локально на бэке, в базу данных или S3 хранилище. Можно сделать GET ручку на получение картинки, если она лежит в базе или на диске, а если в S3, то на фронт можно отправлять URL самой картинки, чтобы браузер сходил сам за картинкой

  • @rimashi1089

    @rimashi1089

    Ай бұрын

    @@artemshumeiko да, я читал эту статью, но не до конца понял, т.е. вот у нас функция (file: Annotated[file, Form()], num: Annotated[int, Form()] Где file и num это ключи по которым я добавил значения в formData? По поводу изображения...оно лежит локально в папке на сервере, я написал эндпоинт для отображения этого изображения @app.get("show/{filename}") def show_images(filename: str) return FileResponse(path='/static/', mimetype='image/png') И вот оно не работает...на клиенте я указываю ссылку как /show/filename и...он как будто не подставляет ссылку, на бэке вроде ошибок нет и в логах пусто...лишь ошибка ajax'a, какая именно не понятно, там просто ajax error и следом 404...

  • @artemshumeiko

    @artemshumeiko

    29 күн бұрын

    ​@@rimashi1089 > Где file и num это ключи по которым я добавил значения в formData? Да. По поводу отображения файла. В параметр path вы должны указать адрес файла по типу /static/{filename}.jpg, а не просто /static Вообще, заходите в мое сообщество, вам там помогут: t.me/python_community_rus

  • @rimashi1089

    @rimashi1089

    29 күн бұрын

    @@artemshumeiko спасибо, вы уже очень помогли, и хотя бы прочитали и дали ответ, спасибо. А, и благодарю за ваши прекрасные курсы - плейлисты, я считаю, что так и должны выглядеть доки в общем виде)

  • @digitalberd
    @digitalberd3 ай бұрын

    Пытаюсь сейчас вместо нотификации по паролю - сделать как у вастрика на сайте - по запросу генерируется 6-ти значное число, отправляется на почту и в телеграмм, человек его вводит - и ему выдают аутентификацию. Столкнулся с тем, что в fastapi users очень сложно отключить использование пароля для аутентификации... Хранить это 6-ти значное число в текущем поле hashed password не хочу - т.к. число влазит в 4 байта - и хранить его в 1024 символах с шифрованием - очень неэффективно. Если есть возможность снять на эту тему видео - было бы здорово!

  • @artemshumeiko

    @artemshumeiko

    3 ай бұрын

    звучит круто запишу в список идей для видео

  • @donlinoleum831
    @donlinoleum8313 ай бұрын

    Хорош!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • @talvin22
    @talvin223 ай бұрын

    Есть возможность портировать твой курс по FastAPI так же на платформу Udemy? Очень хотелось бы его пройти, но из-за границы нет возможности(

  • @artemshumeiko

    @artemshumeiko

    3 ай бұрын

    Можно оплатить курс через Boosty: boosty.to/artemshumeiko или криптой, и я выдам вам доступ до всех материалов Можете написать в телегу по любым вопросам оплаты: t.me/artem_shumeiko_support

  • @mailvoodoo
    @mailvoodoo3 ай бұрын

    Спасибо за видео! 31:38 Не подскажите, а почему не используется просто респонс модел в роутере для этой цели (репозиторий возвращает объект БД)? - Что-то типа @router.get("/", response_model=List[STask])? И еще: поддерживаю идею показать ML+FastAPI, очень хотелось бы. И присоединяюсь к предложению-просьбе о таком же базовом уроке/курсе, только уже не для начинающих, а для начинающих с Фастапи но с опытом разработки на других фреймворках. Т.е. показать базовый пример (принимая во внимание, что основы должны быть уже известны) полноценного мелкого проекта, но с уклоном в реальную разработку (постгрес с докером разделение на настройки проекта для прода, дева, базовые тесты) и тоже все это верхнеуровнево, чтобы просто увидеть как оно относительно типично, только с Фастапи. Мне кажется, сейчас много уроков именно для начинающих в программировании, но мало для тех, кто имеет опыт, и хочет освоить инструмент уже как очередной. А тут бы как раз и посмотреть на реальные примеры из коммерческой разработки. Т.к. в мануалах этого тоже не увидишь. Еще раз спасибо и успехов!

  • @JIJI-zv1qp
    @JIJI-zv1qp3 ай бұрын

    раскажите о ci/cd

  • @jekafilin553
    @jekafilin55317 күн бұрын

    Будет ли другой курс? Я живу в другой стране, а человек который меняет деньги в отъезде!!!!! Очень хочу его пройти!

  • @artemshumeiko

    @artemshumeiko

    17 күн бұрын

    Напишите мне в телеграм @artem_shumeiko_support - помогу с оплатой из-за рубежа

  • @wendypython
    @wendypythonАй бұрын

    Здравствуйте а ваш кур платный или бесплатный ?

  • @artemshumeiko

    @artemshumeiko

    Ай бұрын

    Тот, что рекламируется в видео - платный Подробнее тут: artemshumeiko.ru

  • @popovanatoliy4736
    @popovanatoliy4736Ай бұрын

    возвращать none там, где мы можем вернуть пустое значение не стоит.

  • @GunaevVO
    @GunaevVO22 күн бұрын

    Народ у кого Swagger docs и redoc не открывается?

  • @foxik_cs5845
    @foxik_cs58453 ай бұрын

    А чем отличается этот курс от курса платного?

  • @artemshumeiko

    @artemshumeiko

    3 ай бұрын

    Здесь мы рассмотрели примерно одну сотую от курса. В курсе подробно разбираются темы работы с БД, авторизацией, кэшированием, асинхронными задачами, логированием, тестированием, мониторингом. Полную программу курса можно посмотреть здесь: artemshumeiko.ru/#rec685694893

  • @user-wk9nn4hq3t
    @user-wk9nn4hq3t2 ай бұрын

    Ошибка, чаще apache чем nginx)

  • @net6797
    @net67972 ай бұрын

    Для тех у кого возникла ошибка на 32 минуте видео pydantic_core._pydantic_core.ValidationError: 1 validation error for STask Input should be a valid dictionary or instance of STask [type=model_type, input_value=, input_type=TasksOrm] Необходимо объект TasckOrm конвертирвать в словарь с помощью метода .__dict__ task_schemas = [STask.model_validate(task_model.__dict__) for task_model in task_models]

  • @artemshumeiko

    @artemshumeiko

    2 ай бұрын

    спасибо, что помогаете другим! на 48:25 решается эта проблема :D

  • @balbesina228

    @balbesina228

    Ай бұрын

    Спасибо, человечище)

  • @aleksanderm1947
    @aleksanderm194711 күн бұрын

    24:40 "Заэкзекъють нам эту квэри, если по-русски говорить" (с)

  • @sergeiostrovskiy3828
    @sergeiostrovskiy38283 ай бұрын

    Посмотрел на 2х Куда подавать резюме ?

  • @slmpnv
    @slmpnv2 ай бұрын

    Ну это для каких-то слишком начинающих. Не думаю, что людям, не знающим что делают requirements.txt, надо уметь пользоваться fastAPI

  • @naismith3529
    @naismith35293 ай бұрын

    Slim?? Хм

  • @vasiliusmasalskis7732
    @vasiliusmasalskis77323 ай бұрын

    ни хрена не понятно!

  • @artemshumeiko

    @artemshumeiko

    3 ай бұрын

    :'(

  • @GunaevVO
    @GunaevVO3 ай бұрын

    Annotated Depends() Чёт не работае.

  • @DanilMustafin
    @DanilMustafin2 ай бұрын

    Ты самый пиздатый

  • @zRangelz
    @zRangelzАй бұрын

    вот что тут бесит это автоимпорты которые даже не показываются....

Келесі