@VSCO_FOX

Библиотека aiogram. Как подключить dispatcher?

Учусь писать ботов с использованием библиотеки aiogram. Хочу вынести обработку событий в отдельный модуль, однако при импорте этого модуля в main.py события не регистрируются!

main.py
from handlers import cmds

from aiogram import Bot, Dispatcher, executor, types
from dotenv import dotenv_values

creds = dotenv_values(".env")
API_TOKEN = creds['API_TOKEN']

bot = Bot(API_TOKEN)
dp = Dispatcher(bot)


def main():
    print('Bot started...')
    executor.start_polling(dp)


if __name__ == "__main__":
    main()


handlers/cmds.py
import markups

from aiogram import types
from main import bot, dp

@dp.message_handler(commands=['start'])
async def cmd_start(message: types.Message):
    await message.answer("✨ Меню", reply_markup=markups.main_markup())


__init__.py в модуле 'handlers'
from .cmds import dp

Однако при использовании '/start' обработка команды не происходит. Подскажите, пожалуйста, как правильно следует импортировать этот модуль?
  • Вопрос задан
  • 517 просмотров
Пригласить эксперта
Ответы на вопрос 2
@VSCO_FOX Автор вопроса
Основная проблема, как я понял, в том, что я использую взаимный импорт? Т.е. импортирую dp и bot из main в cmds, а cmds импортирую в main?
Ответ написан
Комментировать
@IKIQ
Посмотрите примеры на github к этому уроку https://mastergroosha.github.io/telegram-tutorial-...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы