Задать вопрос
@Murat50005

Можно ли подружить aiogram и flask?

Можно ли подружить aiogram и flask?
Как подружить "flask" и "aiogram", веб-интерфейс будет написан на "flask", а бот на "aiogram", чтобы запустить бота одним нажатием кнопки в веб интерфейсе. Можно ли запустить polling в отдельном потоке и как это сделать?
webhook не рассматриваю
  • Вопрос задан
  • 1655 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
kshnkvn
@kshnkvn
yay ✌️ t.me/kshnkvn
Можешь запустить в отдельном процессе, что бы потом при необходимости иметь возможность остановить этот процесс:
from multiprocessing import Process

from flask import Flask
from aiogram import Bot, Dispatcher, executor, types

import config

app = Flask(import_name=__name__)

bot = Bot(token=config.BOT_TOKEN)
dispatcher = Dispatcher(bot=bot)


def bot_start_polling():
    executor.start_polling(dispatcher=dispatcher, skip_updates=True)


@dispatcher.message_handler(commands=['start'])
async def bot_handler_start(message: types.Message):
    await message.reply('Foo')


@app.get(rule='/start_bot')
def start_bot():
    bot_process = Process(target=bot_start_polling)
    bot_process.start()

    return str(bot_process.pid)


if __name__ == '__main__':
    app.run()

Но это очень тупо так делать, раз уж ты используешь flask, то повесь webhook и делай нормально. Любое решение помимо будет очень странным костылем.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы