Телеграм-бот на Python: интерактивный курс aiogram с практикой в браузере
Свой телеграм-бот на Python: от первого токена в BotFather до бота с базой данных
Редакция Питоники

Телеграм-бот — самая частая первая «настоящая» программа на Python: он живой, отвечает вам и вашим друзьям за секунды, и им правда пользуются. На русскоязычном Python стандарт де-факто — асинхронный фреймворк aiogram, на нём написано большинство ботов, которые вы видели.
Десять уроков ведут от регистрации бота в BotFather до сквозного проекта: команды и обработчики, reply- и inline-клавиатуры, машина состояний для диалогов, файлы, база данных SQLite, middleware и обработка ошибок. Каждый урок — теория с кодом, который запускается прямо на странице: механику бота показывает живой тренажёр сообщений, а настоящий код с токеном идёт рядом, готовый для вашего компьютера.
Мы пишем честно: сеть из браузерной песочницы недоступна, поэтому в уроках видно и упрощённую механику, и настоящий aiogram-код — разница объясняется, а не прячется. Подводные камни (порядок хендлеров, блокирующий sleep, лимиты Telegram) разобраны там, где новички чаще всего спотыкаются.
Чему научитесь
- Зарегистрировать бота в BotFather и запустить его на своём компьютере
- Писать обработчики сообщений и команды, понимать порядок их срабатывания
- Строить reply- и inline-клавиатуры и ловить callback-запросы
- Вести пошаговые диалоги через машину состояний (FSM) и MemoryStorage
- Отправлять и принимать файлы и медиа
- Хранить пользователей и их данные в SQLite из бота
- Понимать асинхронность aiogram: async/await и почему бот замирает
- Защищать бота middleware-троттлингом и обработкой ошибок
- Собрать сквозной проект: бот-трекер расходов с базой и отчётами
Для кого: Тем, кто знает основы Python (переменные, функции, словари) и хочет написать первую программу, которой будут пользоваться другие.
- Урок 1. Как создать телеграм-бота на Python: от BotFather до первого эхо-ответаРегистрируем бота в BotFather, разбираемся, что такое токен и long polling, и собираем эхо-бота на aiogram — механику проверяем прямо в браузере, без токена.35 мин
- Урок 2. Обработчики сообщений в aiogram: команды, текст и фильтрыУчим бота различать сообщения: Router, команды Command и CommandStart, аргументы через CommandObject и магический фильтр F — и главное правило, что порядок хендлеров решает всё.40 мин
- Урок 3. Клавиатуры в телеграм-боте: reply и inline кнопки в aiogramСтроим кнопки, которыми приятно пользоваться: ReplyKeyboardMarkup против InlineKeyboardMarkup, ряды, callback_data и обработка нажатий в aiogram 3.40 мин
- Урок 4. FSM в aiogram: машина состояний для пошаговых диалоговУчим бот вести диалог по шагам: состояния как таблица переходов, анкета «имя — возраст — город» на тренажёре, а потом по-настоящему — StatesGroup, MemoryStorage и FSMContext.45 мин
- Урок 5. Фото и файлы в aiogram: отправка и приём медиаОтправляем ботом фото с диска и из памяти, разбираемся с file_id, принимаем файлы от пользователя и не упираемся в лимиты Telegram.35 мин
- Урок 6. База данных в телеграм-боте: SQLite от первого лицаДаём боту настоящую память: таблица пользователей с chat_id, запись через INSERT OR IGNORE, чтение по chat_id и параметр ? против SQL-инъекций.40 мин
- Урок 7. Асинхронность в aiogram: asyncio для бота без страхаРазбираем на живом коде, зачем aiogram асинхронный: async и await, asyncio.sleep против time.sleep и gather для параллельных чатов.40 мин
- Урок 8. Middleware в aiogram: антиспам, логирование и общие данныеПишем middleware в aiogram: антиспам-троттлинг, логирование всех апдейтов и передачу общих данных в хендлеры — механику запускаем прямо на странице.40 мин
- Урок 9. Обработка ошибок в телеграм-боте: try/except, лимиты и логиУчим бот переживать ошибки: try/except в хендлерах, лимиты Telegram с RetryAfter, модуль logging вместо print и перезапуск polling после падения.40 мин
- Урок 10. Проект: телеграм-бот трекер расходов на aiogram с базой данныхСквозной проект курса: бот-трекер расходов с inline-кнопками, FSM-диалогом, SQLite-хранилищем и отчётом за месяц. Рабочая версия в песочнице, полный код на aiogram и чек-лист запуска.45 мин