Подключение роутеров отдельными модулями
У меня есть файл routers.py в котором я импортирую отдельные модули handlers, для каждого модуля есть свой именной роутер:
from functions.cmd_new_date import router_new_date
from functions.cmd_find_date import router_find_date
В нем же я создал список из импортируемых модулей и объявил функцию которая возвращает каждый элемент списка:
rl = [router_find_date, router_new_date]
def routers_list():
for i in rl:
return i
Далее я в файле run.py в главной функции подключаю роутер, пользуясь функцией routers_list:
async def main():
dp.include_router(routers_list())
await dp.start_polling(bot)
Но она подключает только первый (то есть нулевой по индексу) роутер из списка. Как подключить список с роутерами без использования dp.include_router() для каждого роутера? Или какие есть еще варианты разбить handlers на модули (один handler - один модуль) и подключать их напрямую в главную функцию без повторения кода?
Ответы (1 шт):
Удалось решить таким образом:
Создаем список с роутерами и немного меняем подключение роутеров внутри функции main:
async def main():
for i in rl: #rl - routers list
dp.include_router(i)
await dp.start_polling(bot)