Михаил Марков
Михаил Марков
  • 22
  • 8 622
Разработка телеграм ботов на Python / Aiogram 3.8 | Всё про FSM и состояния | Урок 3 | Redis + Mongo
В уроке вы узнаете, что такое Finite State Machine (FSM) в aiogram, и как с её помощью Вы можете анкетировать своих пользователей. Также мы научимся подключать Mongo и Redis к aiogram боту в качестве хранилища состояний.
👨🏻‍🎓 Вы можете учиться со мной на курсе по разработке ботов в онлайн школе «Marcus»
------------------------------------------------------------------
shop.emarcus.ru/catalog/aiogram-py
0:00 - План урока
0:37 - Что такое Finite State Machine?
4:44 - Пример применения FSM в реальности
6:35 - State и StatesGroup - что это?
8:20 - Что такое MemoryStorage, RedisStorage, MongoStorage?
11:00 - Практика (пишем код). Команда /start
12:45 - Создаем форму с помощью StatesGroup и State
14:30 - Что такое FSMContext? Как использовать его в хэндлере?
24:49 - Как сохранить ответ пользователя? На примере MemoryStorage
27:24 - Как данные хранятся в Storage? (в виде dict)
28:58 - Отличия set_data() и update_data()
33:38 - Правильная иерархия файлов проекта (handlers, states и т.д.)
37:53 - Важно! Почему бот не отвечает? (import handlers)
42:20 - Сброс хранимой информации FSMContext.clear()
44:28 - Финал. Вывод собранной информации
48:00 - Как досрочно закончить процесс анкетирования?
51:38 - Подключение Redis к Aiogram боту
57:59 - Подключение MongoDB к Aiogram боту
57:59 - Подключение MongoDB к Aiogram боту
01:01:23 - Завершение
Стек технологий
----------------------------
- Python 3.12
- AIOGram 3.8
- Pycharm Proffessional
Документация Aiogram по FSM
-----------------------------------------------------
docs.aiogram.dev/en/latest/dispatcher/finite_state_machine/index.html
Документация по Redis
----------------------------------------
github.com/redis/redis-py
Качественные и бесплатные самоучители по программированию Вы можете найти тут
---------------------------------------
emarcus.ru/wiki/
Мои соц. сети:
------------------------
telegram: t.me/marcus_itedu
vc: vc.ru/u/3462910-mihail-markov
dzen: dzen.ru/emarcus
Переглядів: 488

Відео

Тернарный оператор C++ | Теория и практика | Урок 8 | Основы C++
Переглядів 913 місяці тому
В уроке мы узнаем, что такое тернарный оператор в C . Рассмотрим примеры тернарного оператора в C . 👨🏻‍🎓 Вы можете учиться со мной в онлайн школе «Marcus» shop.emarcus.ru/catalog/ 0:00 - План урока 0:14 - Пример, когда нужен тернарный оператор в C 0:35 - Синтаксис тернарного оператора 0:59 - Пример 1 1:27 - Пример 2 2:02 - Пример 3 - вложенный тернарный оператор 2:16 - Разбор примера 3 на практ...
Разработка телеграм ботов на Python / Aiogram 3.8 | Клавиатуры | Урок 3
Переглядів 4764 місяці тому
В уроке мы подробно знакомимся с клавиатурами в AIOgram. Научимся писать InlineKeyboardMarkup и ReplyKeyboradMarkup. Узнаем, как создать меню в telegram боте. 👨🏻‍🎓 Вы можете учиться со мной на курсе по разработке ботов в онлайн школе «Marcus» shop.emarcus.ru/catalog/aiogram-py 0:00 - План урока 0:21 - Виды клавиатур в телеграмме 0:34 - ReplyMarkup клавиатура пример 2:52 - ReplyMarkup - resize_k...
Разработка телеграм ботов на Python/Aiogram 3.8 | Урок 2 | Handlers/Message/Chat/Filters/Env/F
Переглядів 7094 місяці тому
В уроке мы разбираем следующие темы: - Что такое Handlers? В каком порядке проверяются Handlers? - Сущности Chat и Message в Aiogram. - Как фильтровать handlers? Разбираем Filters и Magic Filters (F). - Как правильно хранить токен бота? Зачем нужен файл env? 👨🏻‍🎓 Вы можете учиться со мной на курсе по разработке ботов в онлайн школе «Marcus» shop.emarcus.ru/catalog/aiogram-py 0:00 - План урока 0...
Разработка телеграм ботов на Python/Aiogram 3.8 | Урок 1 | Echo бот
Переглядів 7914 місяці тому
В первом уроке по разработке телеграм ботов на Python и Aiogram мы познакомимся с основными сущностями этой библиотеки - Dispatcher и Bot. Также мы узнаем, как получить токен для бота телеграм. И как написать echo бота? 0:00 - О чем будет видео 0:33 - Обзор фреймворков 1:40 - Знакомство с AIOGram 2:05 - Dispatcher 2:41 - Bot 3:19 - BotFather 3:39 - Как получить токен телеграм бота? 4:16 - Устан...
Почувствуй алгоритмы! Сортировка пузырьком + код на C, C++, Python, Java, JavaScript #1
Переглядів 647Рік тому
Сайт моей школы shop.emarcus.ru GitHub с кодом github.com/mishamarkov15/bubble_sort Бот-задачник. Тут можно решать задачи с автотестами t.me/code_solve_bot Ссылки на соц. сети - VK: marcus_programming_school - Telegram: t.me/marcus_itedu - Instagram: mikhaiilmarkov
Основы С++. Семинар 7. Оператор switch. Решение задач.
Переглядів 346Рік тому
Ссылка на урок: ua-cam.com/video/g4MQ-nHBNGQ/v-deo.html В уроке решаем следующие задачи: - Задача 1. Медаль (Основы switch) - Задача 2. Светофор (Продвинутый switch) - Задача 3. Человеческий вывод числа (Профессиональный switch) Сайт моей школы esmarcus.ru GitHub с кодом github.com/mishamarkov15/bubble_sort Бот-задачник. Тут можно решать задачи с автотестами t.me/code_solve_bot Ссылки на соц. с...
Основы С++. Семинар 6. Оператор else-if. Вложенные условные конструкции. Решение задач.
Переглядів 87Рік тому
Ссылка на урок: ua-cam.com/video/Tj11sv3eAFw/v-deo.html Моя школа по программированию: esmarcus.ru В уроке решаем следующие задачи: - Задача 0. Инопланетяне (Когда надо использовать else if) - Задача 1. Возраст (Закрепление) - Задача 3. Координатная четверть (Как использовать вложенный оператор if) - Задача 4. Високосный год (Как узнать, является ли год високосным) Ссылки на соц. сети: - VK: vk...
Основы C++. Урок 7. Оператор switch.
Переглядів 109Рік тому
Ссылка на семинар: ua-cam.com/video/hlAJH1201C8/v-deo.html В уроке полностью разбираем оператор switch и все его особенности. Ссылки на соц. сети: - VK: itsome - Telegram: t.me/it_some - Instagram: mikhaiilmarkov
Основы С++. Урок 6. Условные конструкции. Каскадный оператор if. Вложенный условный оператор.
Переглядів 202Рік тому
Ссылка на семинар: ua-cam.com/video/Gdcf9MVZH24/v-deo.html В уроке рассматриваются следующие темы: - Каскадный оператор if: if -else if- else - Вложенный условный оператор. Ссылки на соц. сети: - VK: itsome - Telegram: t.me/it_some - Instagram: mikhaiilmarkov
Основы C++. Урок 5. Семинар. Условные конструкции. Полная версия оператора if. Ветка else
Переглядів 109Рік тому
Ссылка на урок: ua-cam.com/video/4Kr4q1hplRI/v-deo.html В уроке решаем следующие задачи: - Задача 1. Удача? (Как проверить число на четырехзначность и делимость) - Задача 2. Пара равных (Проверка пар чисел на равенство) - Задача 3. Тир 3 (Проверить, что число принадлежит отрезку) - Задача 4. Тир 4 (Проверить, что точка принадлежит области) - Задача 5. Тир 8 (Проверить, что точка принадлежит пар...
Основы C++. Урок 5. Условные конструкции. Полная версия оператора if. Ветка else
Переглядів 112Рік тому
Ссылка на семинар: ua-cam.com/video/v34K0X4JiIY/v-deo.html В уроке рассматриваются следующие темы: - Полная версия оператора if (if-else) - Ветка else Ссылки на соц. сети: - VK: itsome - Telegram: t.me/it_some - Instagram: mikhaiilmarkov
Основы C++. Семинар 4. Условные конструкции. Неполный оператор if
Переглядів 53Рік тому
Ссылка на урок: ua-cam.com/video/QoKSd-Y_Jns/v-deo.html В уроке решаем следующие задачи: - Задача 1. Обмен двух переменных (как поменять переменные значениями) - Задача 2. Сумма положительных (сложить только положительные числа) - Задача 3. Уменьшить большее их трех (найти максимум из переменных) Ссылки на соц. сети: - VK: itsome - Telegram: t.me/it_some - Instagram: mikhai...
Основы C++. Урок 4. Условные конструкции. Неполный оператор if
Переглядів 151Рік тому
Основы C . Урок 4. Условные конструкции. Неполный оператор if
Основы C++. Семинар 3. Тип данных bool. Логические выражения.
Переглядів 184Рік тому
Основы C . Семинар 3. Тип данных bool. Логические выражения.
Основы C++. Урок 3. Тип данных bool. Логические выражения.
Переглядів 9452 роки тому
Основы C . Урок 3. Тип данных bool. Логические выражения.
Основы С++. Семинар 2. Типы данных. Преобразование типов.
Переглядів 832 роки тому
Основы С . Семинар 2. Типы данных. Преобразование типов.
Основы С++. Урок 2. Типы данных и их модификаторы. Преобразование типов.
Переглядів 1682 роки тому
Основы С . Урок 2. Типы данных и их модификаторы. Преобразование типов.
Основы С++. Семинар 1. Ввод и вывод переменных. Арифметические операторы. Введение в язык
Переглядів 2042 роки тому
Основы С . Семинар 1. Ввод и вывод переменных. Арифметические операторы. Введение в язык
Основы С++. Урок 1. Ввод и вывод переменных. Арифметические операторы. Знакомство с языком.
Переглядів 2892 роки тому
Основы С . Урок 1. Ввод и вывод переменных. Арифметические операторы. Знакомство с языком.

КОМЕНТАРІ

  • @iwow-s2h
    @iwow-s2h 4 години тому

    отличное объяснение

  • @iwow-s2h
    @iwow-s2h 4 години тому

    топ

  • @АртёмДавыдов-ы5э
    @АртёмДавыдов-ы5э Місяць тому

    Добрый день а можете показать как делать админку в боте или как можно привязать django админку

    • @marcus-school
      @marcus-school Місяць тому

      Добрый день! А админку сделать очень просто. Просто сделайте себе ещё одного бота, который будет администратором другого) А конкретный админ-бот зависит от того, что именно Вам нужно администрировать

  • @allfocuses
    @allfocuses Місяць тому

    Спасибо. Жду продолжение. В конце покажите пожалуйста какой нибудь сложный рабочий код в разработке. Допустим бот магазин

    • @marcus-school
      @marcus-school Місяць тому

      Рад, что есть спрос на уроки 🥰

  • @ВладимирОспищев-м4р

    Планируется урок по business_message и иже с ними?

    • @marcus-school
      @marcus-school Місяць тому

      Если есть спрос, то будет и урок 🙏🏼

  • @btcpapa
    @btcpapa 2 місяці тому

    Когда следующее видео?

    • @marcus-school
      @marcus-school 2 місяці тому

      Уже работаю над уроком про WebApps)

  • @ДаниилАзимов-в4ъ
    @ДаниилАзимов-в4ъ 2 місяці тому

    Жаль, что когда я изучал эту тему тебя не было. Подробно, ясно, классно ❤

    • @marcus-school
      @marcus-school 2 місяці тому

      Очень приятно слышать, спасибо ☺️❤️

  • @un.classique
    @un.classique 2 місяці тому

    это однозначно лайк. Так доходчиво объясняешь материал, который никто так не разжёвывает для людей

    • @marcus-school
      @marcus-school 2 місяці тому

      Спасибо большое, рад стараться 🥰

  • @СержГазиев
    @СержГазиев 2 місяці тому

    Большое спасибо, жду с нетерпением продолжения👍

    • @marcus-school
      @marcus-school 2 місяці тому

      Спасибо, рад слышать)) 🥰

  • @vplle
    @vplle 2 місяці тому

    мегахорош

  • @ZombMa1001
    @ZombMa1001 3 місяці тому

    что то вы подзатянули над следующим видео(

  • @ZombMa1001
    @ZombMa1001 3 місяці тому

    Добрый день, а что мне делать, если при нажатии на кнопку текст изменяется, но кнопка не пропадает? Как мне ее удалить?

    • @marcus-school
      @marcus-school 3 місяці тому

      Вы 100% забыли про ReplyKeyboardRemove(). Оно есть в виде, посмотрите внимательно)

  • @ZombMa1001
    @ZombMa1001 3 місяці тому

    Я прям плачу от счастья, я уж думал не найду подробное видео с библиотекой aiogram, спасибо вам огромное!!!!

    • @marcus-school
      @marcus-school 3 місяці тому

      Рад слышать, спасибо!) Уже на подходе четвертый урок про FSM)

    • @ZombMa1001
      @ZombMa1001 3 місяці тому

      @@marcus-school очень жду)

    • @ZombMa1001
      @ZombMa1001 3 місяці тому

      @@marcus-school вы в будущем будете рассказывать про Web Apps?

    • @marcus-school
      @marcus-school 3 місяці тому

      @@ZombMa1001 Конечно, это не такая уж и сложная тема) Да и на самом деле того, что я рассказал уже почти достаточно для Web Apps)

  • @BrawlTt-zx6bn
    @BrawlTt-zx6bn 3 місяці тому

    будет видео про бд?

    • @marcus-school
      @marcus-school 3 місяці тому

      А что именно про БД Вам интересно? Как связать БД и aiogram?

    • @BrawlTt-zx6bn
      @BrawlTt-zx6bn 3 місяці тому

      @@marcus-school да

    • @BrawlTt-zx6bn
      @BrawlTt-zx6bn 3 місяці тому

      Как использовать бд с аиограм, на Ютубе очень мало видео на эту тему

    • @marcus-school
      @marcus-school 3 місяці тому

      @@BrawlTt-zx6bn Следующий урок планируется по FSM, а после тогда сделаю о том, как соединить Postgres и aiogram)

    • @BrawlTt-zx6bn
      @BrawlTt-zx6bn 3 місяці тому

      @@marcus-school спасибо большое

  • @serzhanzhumagazhayev7865
    @serzhanzhumagazhayev7865 3 місяці тому

    Привет. Спасибо за видео! Делаю бота в котором 2 сервиса "Клининг, Электрохозяйство" при выборе пользователем одного из сервиса, например Электрохозяйство попадает в следующее меню для выбора инцидента "Нет электричества, не работает кондиционер, другое, назад" далее надо попросить пользователя ввести месторасположение (какой этаж), прикрепить фото и выслать пользователю в телеграмм группу который за это отвечает подскажи пожалуйста возможно ли реализовать такие шаги как сбор инфы от пользователя и отправка данных в группу, и как это реализовать? что прочитать?

    • @marcus-school
      @marcus-school 3 місяці тому

      Конечно, Вам нужно разораться с FSM - docs.aiogram.dev/en/latest/dispatcher/finite_state_machine/index.html Я уже по этой теме записываю урок)

  • @ramforinh
    @ramforinh 3 місяці тому

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

  • @KringeMaker
    @KringeMaker 4 місяці тому

    Продолжай! очень интересно, к тому же нравится, как ты объясняешь))🙏🏻❤

    • @marcus-school
      @marcus-school 4 місяці тому

      Большое спасибо! В следующем уроке будем разбирать FiniteStateMachine для ботов))

    • @ramforinh
      @ramforinh 4 місяці тому

      ​@@marcus-schoolО, это самое интересное для меня. Когда ждать?

    • @marcus-school
      @marcus-school 4 місяці тому

      Очень постараюсь к концу грядущей недели)

  • @Reykman_channel
    @Reykman_channel 4 місяці тому

    Миша, спасибо за проделанную работу!

  • @ДавидХачатурян-щ9ф
    @ДавидХачатурян-щ9ф 4 місяці тому

    И где это можно примененит

    • @marcus-school
      @marcus-school 4 місяці тому

      Например, при работе с библиотекой requests. Или при решении задачи судоку (рекурсивном решении)

  • @artmine6988
    @artmine6988 4 місяці тому

    Уроки классные, жаль что так мало подписчиков, с такими уроками минимум 1.000 должно быть

    • @artmine6988
      @artmine6988 4 місяці тому

      только звук бы погромче)

    • @marcus-school
      @marcus-school 4 місяці тому

      Спасибо, приятно слышать))

    • @marcus-school
      @marcus-school 4 місяці тому

      @@artmine6988 Исправимся, будем делать громче)

  • @halimzoda1
    @halimzoda1 4 місяці тому

    Следующий урок когда будет

  • @domeneckdhk3974
    @domeneckdhk3974 4 місяці тому

    классные уроки,когда следующий?

    • @marcus-school
      @marcus-school 4 місяці тому

      Спасибо большое! Уже работаю над следующим уроком)

  • @MsGamzik
    @MsGamzik 4 місяці тому

    Покажите как пользоваться библиотекой aiogram. Буду очень признателен.

  • @jolyblack5047
    @jolyblack5047 4 місяці тому

    качество топ

  • @AlexiTop10
    @AlexiTop10 4 місяці тому

    Очень классное обьяснение и подача материала!с нетерпением жду новый урок,не останавливайтесь!

  • @JokerSe1
    @JokerSe1 4 місяці тому

    Хорошая подача материала, всё предельно ясно! Пожалуйста, не останавливайтесь, жду следующего урока 👍

  • @Crazy_DeDus
    @Crazy_DeDus 4 місяці тому

    Что за бомба!!!

  • @yuravolchkov2011
    @yuravolchkov2011 9 місяців тому

    а я просто сделал case 0-100. с выделением десятых понял как, но реализовать не смог. да и сроки поджимали в нетологии.

  • @mrzefirka9649
    @mrzefirka9649 11 місяців тому

    В первой задаче мы же могли просто сразу нужный диапазон указать, разве нет? от -9999 до 9999 и будет так же работать

    • @marcus-school
      @marcus-school 10 місяців тому

      Тогда нам бы подошли числа [-999, 999], а они не четырехзначные)

  • @minruel
    @minruel Рік тому

    Спасибо большое, Добрый Человек!)

  • @Крайзис777
    @Крайзис777 Рік тому

    О, алгоритмы это очень интересно! А будут ещё ролики по сортировкам? Мой личный интерес, касаемый сортировок, это пирамидальная сортировка! Кстати, очень классная мысль в конце ролика показывать код на разных языках программирования. Я, например, в параллель с C++ python юзаю, он мне для зачёта в универе только нужен будет. И ещё момент: в цикле j можно также написать size -1 т.к. цикл совершает 1 лишную итерацию, когда последний элемент по факту уже отсортирован (он же последний), это если придираться. В C++ принято константы именовать заглавными буквами, вместо size, лучше написать SIZE. Будем ждать другие сортировки;)

    • @marcus-school
      @marcus-school Рік тому

      Рад, что видео понравилось) Конечно, ещё ролики по алгоритмам будут)

  • @quantumded
    @quantumded Рік тому

    Крайнее признателен за урок, очень понятно. Не подскажете дополнительных материалов для изучения C++?

    • @marcus-school
      @marcus-school Рік тому

      Благодарю! Вам интересно было бы дополнительно изучить теорию?

  • @Doter-_-
    @Doter-_- Рік тому

    Жду уроки по ООП)

  • @ИБМ712Б-п4з
    @ИБМ712Б-п4з Рік тому

    Я мама Илона Макса. Пишу с другого аккаунта. Всё что есть у моего сына благодаря Вам Михаил. Храни Вас Бог.

  • @swaytornado8327
    @swaytornado8327 2 роки тому

    А вот, если открыть любую серозную программу на с++, она начинается с переменных или с чего-то другого?

    • @marcus-school
      @marcus-school 2 роки тому

      Она начинается с подключения библиотек/файлов, как и у нас)

    • @swaytornado8327
      @swaytornado8327 2 роки тому

      А кроме этого, что лежит в основе каждой программы? Спасибо за ответ.

    • @marcus-school
      @marcus-school 2 роки тому

      @@swaytornado8327 Функция main также является обязательно. Это отправная точка абсолютно любой программы на C++.

    • @swaytornado8327
      @swaytornado8327 2 роки тому

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

  • @Llapaloma
    @Llapaloma 2 роки тому

    🥵🥶

  • @ivankravchuk8888
    @ivankravchuk8888 2 роки тому

    👌

  • @nv_tm
    @nv_tm 2 роки тому

    Спасибо за урок. Дай бог тебе здоровья!

  • @ichinosse-2211
    @ichinosse-2211 2 роки тому

    Спасибо тебе за уроки