Роутер aiogram Router | Декомпозиция на модули | Телеграм бот на Python с нуля

YOUTUBE · 28.11.2025 06:49

Ключевые темы и таймкоды

Введение в роутеры

0:00
  • Сурен объясняет, что такое роутеры и зачем они нужны.
  • В файле main.py содержится вся логика бота, что делает его сложным для обновления и поиска кода.
  • Рекомендуется разбивать код на отдельные модули для удобства разработки.

Преимущества роутеров

1:25
  • Роутеры позволяют изолировать эндпоинты, обрабатывающие запросы пользователей.
  • Это помогает легче ориентироваться в коде и модифицировать его.
  • Роутеры можно использовать вместо диспетчера для регистрации обработчиков.

Импорт и инициализация роутеров

2:16
  • Роутер импортируется из aiogram и инициализируется.
  • Роутер можно использовать вместо диспетчера для регистрации обработчиков.
  • Роутеры можно подключать к основному приложению для обработки запросов.

Создание и подключение роутеров

3:35
  • Роутер в aiogram наследуется от класса, который занимается принятием простых апдейтов и запуском бота.
  • Новые роутеры можно использовать для регистрации команд и использования фильтров.
  • Важно подключить роутер к основному приложению для корректной работы.

Перенос базовых команд в отдельный модуль

4:33
  • Создается новый пакет для базовых команд и обработчиков.
  • Переносятся все файлы и роутеры в новый модуль.
  • Роутер подключается к основному приложению для корректной работы.

Проверка работы роутеров

8:09
  • Проверяется работа базовых команд после переноса в отдельный модуль.
  • Все команды продолжают работать, но основной модуль уменьшается.
  • Перенос остальных команд в отдельный модуль для дальнейшего улучшения.

Перенос пользовательских команд

10:05
  • Создается новый модуль для пользовательских команд.
  • Переносятся все команды и обработчики в новый модуль.
  • Роутер подключается к основному приложению для корректной работы.

Подключение роутеров

11:59
  • Подключение базового роутера и роутера для команд пользователя.
  • Использование инклюд роутеров для передачи нескольких роутеров.
  • Проверка работы команд пользователя в телеграм-чате.

Проблемы с обработкой команд

12:40
  • Команды пользователя не обрабатываются должным образом.
  • Важность порядка обработки роутеров.
  • Исправление порядка подключения роутеров для корректной обработки команд.

Маршрутизация роутеров

15:09
  • Порядок обработки роутеров: текущий роутер, следующий роутер и т.д.
  • Перенос обработчика эхо-сообщения в отдельный роутер.
  • Создание нового файла для обработки эхо-сообщения.

Перенос обработчиков

16:50
  • Перенос обработчиков медиа и админских команд в отдельные роутеры.
  • Создание новых роутеров для обработки медиа и админских команд.
  • Подключение новых роутеров к основному роутеру.

Проверка работы новых роутеров

21:28
  • Проверка работы обработчиков медиа в телеграм-чате.
  • Перенос оставшихся обработчиков в отдельный модуль.
  • Создание отдельного роутера для админских команд.

Регистрация админских команд

22:55
  • Указание админских ID в настройках.
  • Перенос админских команд в отдельный роутер.
  • Регистрация админских команд в конце, после пользовательских.

Оптимизация кода

25:04
  • Перенос диспетчера и роутера в мейн.
  • Удаление ненужных комментариев и импортов.
  • Главный модуль занимает всего 30 строк.

Проверка работы

26:00
  • Перезапуск и проверка работы бота.
  • Обработка стандартных команд, таких как "пик" и "старт".
  • Указание порядка обработки запросов в роутере.

Работа с файлами и кодами

26:35
  • Обработка текстовых файлов и кодов.
  • Разделение кода на модули для удобства работы.
  • Возможность вложенных роутеров и порядок их обработки.

Заключение и благодарности

27:33
  • Роутеры как вложенные модули.
  • Призыв к использованию роутеров для оптимизации кода.
  • Благодарности подписчикам и приглашение на бесплатный ролик на Бусти.
  • Призыв подписаться на другие соцсети и поддержка автора.