Telegram Bot на Python. Часть 2 - aiogram bot. Python, Django, Django Rest Framework.

Поделиться
HTML-код
  • Опубликовано: 5 янв 2025

Комментарии • 57

  • @Hande_hoch
    @Hande_hoch Год назад +2

    51:14 у кого бот отвечает всё время Nein, тут надо сделать вместо if answer == data.get(answer), if answer == data.get('answer'), т.е. взять в кавычки

    • @cyber-paddle
      @cyber-paddle  Год назад +1

      Можете пулреквест сделать...

    • @Hande_hoch
      @Hande_hoch Год назад +1

      я не нашел ссылку на репу. И в гитхабе по поиску тоже не нашел@@cyber-paddle

  • @ViacheslavUstinov-g4x
    @ViacheslavUstinov-g4x 3 года назад +7

    Благодарю за материал! С таким контентом нужно смело ссылочку на донаты прикручивать) Очень приятная связка Джанго-Рестапи-Бот отдельным приложением. Надеюсь, запишете в будущем тему рест-апи -> отдельное шаблонное веб-приложение на реакте например . Тема явно востребована)

    • @cyber-paddle
      @cyber-paddle  3 года назад +1

      Спасибо за отзыв. С реактом не приходилось работать, работал с vue - она как-то лучше зашла...
      Если мы джангу разворачиваем рестом к клиетам, то тут уж все равно кто на той стороне: реакт, вью или еще одна джанга...
      Джанга только начала переход к асинхронности, поэтому в моменте хорошим вариантом для для рест апи может быть fast api фреймворк, который асинхронный по рождению...

    • @cyber-paddle
      @cyber-paddle  3 года назад

      А в последнем видео вообще vanilla js хватило...

    • @vladstrilak727
      @vladstrilak727 3 года назад +1

      Кибер Весло доброго дня,а как зделать щоб callback_query_handler створити саме перше состояния а не через message handler.Буду благодарний за ответ

    • @cyber-paddle
      @cyber-paddle  3 года назад

      Привет! А в чем отличие?
      Вот месседж:
      @dp.message_handler(commands='train_all', state="*") - реагировать на команду train_all, в любом состоянии
      дальше внутри обработчика устанавливаем конкретное состояние - await GameStates.all_words.set()
      Соотв в колбеке будет как-то так...
      @dp.callback_query_handler(lambda c: c.data in ['das', 'die', 'der'], state="*") реагировать на любой стейт
      а внутри обработчика что-то типа - await GameStates.all_words.set() - установить нужный стейт...
      Как-то так... (если правильно понял задачу)

    • @vladstrilak727
      @vladstrilak727 3 года назад

      @@cyber-paddle Доброго дня спасиба за відповідь но мне нада както при нажатии кнопки спрацював callbacl_querly_handler в якому би вклячилас fsm
      Був би вдячний за допомогу.

  • @mimocrocodile5069
    @mimocrocodile5069 2 года назад +1

    46:25
    А не проще ли так:
    data = await state.get_data()
    Или это чем-то хуже?

    • @cyber-paddle
      @cyber-paddle  2 года назад +1

      Дело художника...

  • @vasiliygorelov8037
    @vasiliygorelov8037 Год назад +1

    Спасибо за видео! Есть ли способ отправить по http данные с сервера на tg бота(не запросить, а отправить)? Чтобы при этом логика aiograma не разрушилась. По идее есть же система вэбхуков, поэтому можно как-нибудь подшаманить(если предположим, что у aiograma нет встроенной безопасности)?

    • @cyber-paddle
      @cyber-paddle  Год назад +1

      Так с ходу не подскажу, но aiogram - обертка для телеграмм API, а это значит, что запрус можно пульнуть прям туда...

  • @АнтонНаумов-о6з
    @АнтонНаумов-о6з Год назад +1

    Добрый день. Благодарю за ролик. Пробовал делать все за вами. Но в итоге получаю всегда ответ бота Nein. В чем может быть ошибка. Посоветуйте пожалуйста что делать

    • @cyber-paddle
      @cyber-paddle  Год назад +1

      Спасибо за отзыв, ролик уже давно в сети, возможно API поменялся ...

  • @АртемБеляков-к7з
    @АртемБеляков-к7з Год назад +1

    А есть где-то код проекта? На гитхабе, например?

    • @cyber-paddle
      @cyber-paddle  Год назад +1

      github.com/dvk-net/german-nouns-gender-trainer-telegram-bot

  • @afoninsb
    @afoninsb 2 года назад +1

    Скажите, пожалуйста, откуда вы взяли значение переменной WORDS_API_URL_RANDOM?

    • @cyber-paddle
      @cyber-paddle  2 года назад +1

      импортируется из local_settings.py, который добавлен в гитигнор и поэтому его нет в репозитории (так как он локал, под каждый проект). Его надо создать...
      В первой части должно быть....

  • @fedyasumkin1333
    @fedyasumkin1333 Год назад +1

    Застрял на 11 минуте импортирования фром бот АПП импортируем дп, выкидывает ошибку importerror attempted relative import with no known parent package, я уже изменил "bot_app" на ".bot_app.app" и все равно выдаёт эту ошибку, а если делать как на видео, то оно вообще не хочет импортировать

    • @cyber-paddle
      @cyber-paddle  Год назад

      Надо проверь имена файлов(модулей) и возможно кольцевой импорт

    • @fedyasumkin1333
      @fedyasumkin1333 Год назад +1

      @@cyber-paddle разобрался, нужно было точку убрать перед .bot_app.app

    • @fedyasumkin1333
      @fedyasumkin1333 Год назад

      Возможно проблема в разнице версий vsc

    • @cyber-paddle
      @cyber-paddle  Год назад

      @@fedyasumkin1333 Сомнительно... VSC - это продвинутый текстовый редактор. Он может подсказывать что-то не так, но никак не быть причиной ошибки импорта...

    • @fedyasumkin1333
      @fedyasumkin1333 Год назад +1

      @@cyber-paddle понял, но в любом случае, ликвидация точки перед bot_app и добавление .app после бота помогло, на будущее, если кто-то ещё столкнется с такой проблемой

  • @eduardmart1237
    @eduardmart1237 2 года назад +1

    А как праильно делать асинхронные HTTP запросы с aiogram bot?

    • @cyber-paddle
      @cyber-paddle  2 года назад

      На сторонний ресурс?

    • @eduardmart1237
      @eduardmart1237 2 года назад +1

      ​@@cyber-paddle Да. но я увидел в видео пример aiohttp.

    • @eduardmart1237
      @eduardmart1237 2 года назад +1

      @@cyber-paddle А по опыту как лучше всего делать асинхроные запросы к постгресу? Не ломает ли psycopg2 асинхронность особенно если очень долгий запрос?

    • @cyber-paddle
      @cyber-paddle  2 года назад +1

      @@eduardmart1237 ну вот например
      aiopg.readthedocs.io/en/stable/

  • @cloutstefan7030
    @cloutstefan7030 2 года назад +1

    Привет, застрял на 51 минуте, нажимаю правильный ответ, а в телеграме все равно пишет что неверно, не знаю что делать, проверил код, я решил узнать по print(answer) и в телеграмме выдает None

    • @cyber-paddle
      @cyber-paddle  2 года назад

      Варианта 2:
      1. таки ошибка в коде.
      2. мог измениться API

    • @txkirashima
      @txkirashima Год назад

      такая же проблема потом понял как исправить: вместо if answer == data.get(answer), надо поставить: if answer == data['answer']

    • @Ігор-ч5м7о
      @Ігор-ч5м7о Год назад

      @@txkirashima спасибо)

  • @ФоксиДжентельмен
    @ФоксиДжентельмен 2 года назад +1

    Спасибо!!!

  • @alekseyveld7559
    @alekseyveld7559 2 года назад +1

    Большое спасибо за материал! Подскажите пожалуйста как запустить бота через manage.py в том числе в режиме демона?

    • @cyber-paddle
      @cyber-paddle  2 года назад

      Спасибо за отзыв!
      manage.py это штука Джанги..
      В режиме демона - в линуксе есть несколько вариантов...
      stackoverflow.com/questions/17954432/creating-a-daemon-in-linux
      Для вин это наверное будет сервис

  • @madmax6943
    @madmax6943 2 года назад

    А то, что связано с бекендом и то, что связано с самим ботом деплоится на разных серверах или как?

    • @cyber-paddle
      @cyber-paddle  2 года назад +1

      Как угодно...

    • @madmax6943
      @madmax6943 2 года назад

      @@cyber-paddle а как бы вы сделали?

    • @cyber-paddle
      @cyber-paddle  2 года назад

      @@madmax6943 ну вообще, выставление наружу API и взаимодействие по сети (протокол HTTP(s)) подразумевает разнесение сервисов.

    • @madmax6943
      @madmax6943 2 года назад +1

      @@cyber-paddle понял, спасибо за ответ.

  • @TechWithSabri
    @TechWithSabri 2 года назад +2

    Please bro can you mention the documentation you have used to create this telegram bot please.
    By the way:
    Thank u so much bro for tour time, I enjoyed with your series, it was in Russian but i used translator.
    🎉🎉🎉

    • @cyber-paddle
      @cyber-paddle  2 года назад +1

      Hello! I have been thinking about creating content in English...
      Documentation...
      docs.aiogram.dev/en/latest/
      Plus exploration and google )

    • @TechWithSabri
      @TechWithSabri 2 года назад +1

      ​@@cyber-paddle
      Thank you so much Bro for the docs
      If you want to make it in English it will be better because as you know the audience are English talkers, anyway i will keep watch your vidos
      Appreciated man 👌🏻