Telegram бот python aiogram 3 #8 Многоуровневое инлайн меню, каталог, пагинация, корзина товаров

  Рет қаралды 18,036

Python Hub Studio

Python Hub Studio

Күн бұрын

В этом видео из курса по разработке ботов для Telegram на python с aiogram 3, реализуем многоуровневое инлайн меню, каталог товаров, пагинацию и корзину товаров пользователя.
00:00 Обзор будущего инлайн меню бота
04:11 Изменения в коде по сравнению с прошлым видео
05:00 Удалены команды пользователя
07:08 Новые таблицы в базе данных (модели sqlalchemy)
13:05 Новые запросы через orm к БД
15:07 Наполнение таблиц категории и описания страниц при старте бота
18:57 Запуск бота и заполняем бд информацией через админку
20:20 Новый пункт в FSM - выбор категории товара (для админа)
24:13 FSM для загрузки админом изображений для информационных страниц
29:35 Начинаем работать. Редактирование сообщений в aiogram 3
34:30 Схема будущего меню из 4х уровней (0-3)
38:45 Реализуем 0 уровень меню через /start, а потом через callback
45:43 Фабрика callback в aiogram 3 - класс CallbackData
50:00 Редактируем меню уровня 0, в ответ на callback
54:07 Реализуем 1 уровень меню - выбор категории товаров
01:00:01 Реализуем 2 уровень меню - товары, пагинация в Телеграм боте
01:13:00 Добавление товара в корзину - кнопка купить
01:18:52 Реализуем 3 уровень меню - корзина товаров пользователя
01:32:29 Финальный тест
01:34:52 Финальные штрихи
Поддержать канал:
На канале доступна функция Спонсорство с дополнительными бонусами.
Присоединиться:
/ pythonhubstudio
А также кнопка Суперспасибо под видео (отображается не во всех странах).
Документация API Telegram:
core.telegram.org/api
Документация aiogram:
docs.aiogram.dev/en/latest/
Код из видео:
github.com/PythonHubStudio/ai...
Этот плейлист:
• Telegram бот на python...
Настройка VS Code как у меня:
• Настройка VS Code для ...
Курс по python 7 часов:
• Учим python за 7 часов...
Видео про асинхронность:
• Асинхронность, многопо...
Курс по Django 15 часов:
• Полный курс уроков по ...
Курс HTML / CSS:
• Учим HTML и CSS за 7 ч...
Не забудьте подписаться и включить оповещения, чтоб не пропустить новые выпуски!

Пікірлер: 213
@MrSasuke1337
@MrSasuke1337 3 ай бұрын
Покажите в следующем уроке как добавлять платежную систему, думаю многие бы хотели узнать как это реализовать
@Kovryzhkin
@Kovryzhkin 4 ай бұрын
В очередной раз огромное спасибо за ваш труд. Это был самый насыщенный урок из всех. Пытался править код под новый урок, но уперся в то, что не добавляет ни нового пользователя в базу, ни корзину. Буду делать клон и это видео нужно смотреть раз пять, чтоб досконально все понять. Информации даете не жалея, просто море. Пока таких "Прометеев" в ютубе не встречал. Огромное человеческое СПАСИБО вам еще раз.
@picha_titan
@picha_titan 3 ай бұрын
Точно.
@user-rv7nj7nd8e
@user-rv7nj7nd8e 4 ай бұрын
Хочу сказать огромное спасибо автору, не видел на ютубе так качественно, концентрированно и увлекательно поданной информации. Спасибо вам огромное, буду очень ждать следующих видео:)
@user-zl5sp9yh1n
@user-zl5sp9yh1n 12 күн бұрын
Огромный труд, большое спасибо за ваши труды!
@user-dr.Pazzle
@user-dr.Pazzle 4 ай бұрын
Вне конкуренции!!! Очень ждал следующего видео! Спасибо огромнейшее за твой труд!
@musoroszhigayschiy_zavod76
@musoroszhigayschiy_zavod76 4 ай бұрын
Очень ждал ролик👍 много взял для бота, который помогает водителям при рассмотрении дел об административных правонарушениях
@user-rq7sv7bi2m
@user-rq7sv7bi2m 4 ай бұрын
Всем Здравствуйте! Большое Спасибо за ваш труд! ❤
@Olegvershinin7834
@Olegvershinin7834 4 ай бұрын
Как всегда на высоте! Будут ли уроки по django,хотелось бы увидеть привязку оплаты и размещение интернет магазина на хостинг! Буду очень благодарен,если снимешь урок!
@robertfalken2699
@robertfalken2699 4 ай бұрын
Спасибо. Долгожданное видео!
@jwsergey
@jwsergey 3 ай бұрын
Спасибо автору за труд и объяснения, очень много полезной информации. С нетерпением жду следующие видео. Классная подача...
@user-zy5jq3xu8y
@user-zy5jq3xu8y 4 ай бұрын
еще не посмотрел, но лайк уже поставил. лучший канал !!! лучшие видео по программированию!
@sabotage711
@sabotage711 3 ай бұрын
Спасибо друг! очень помогают ваши видео обучаться! надеюсь не забросите канал, лайк подписка!)
@user-yx9cn1ye1l
@user-yx9cn1ye1l 4 ай бұрын
Лучший канал для желающих разобраться с созданием телеграмм бота!
@Francija-Bez-Rozovyx-Ochkov
@Francija-Bez-Rozovyx-Ochkov 3 ай бұрын
Автор просто кладезь полезной информации! Просто титаническая работа проделана ! Спасибо за ваш труд !
@spherecrypto
@spherecrypto 4 ай бұрын
Автор супер! Огромная благодарность❤
@USER_____Oo_____USER
@USER_____Oo_____USER 4 ай бұрын
Круто, как всегда, топчик!!!
@user-yk4zd4sv4s
@user-yk4zd4sv4s 4 ай бұрын
Автор, спасибо вам за качественный контент!
@spotsman9612
@spotsman9612 4 ай бұрын
Супер контент! Спасибо большое за труд! Хотелось бы еще увидеть то как вы захостите бота и создадите вебхук (если создадите)
@user-tk7mf8jl2w
@user-tk7mf8jl2w 4 ай бұрын
авто лайк! хоть и не начал с Вами еще делать бота, но обязательно сделаю!
@stefanmuller2069
@stefanmuller2069 4 ай бұрын
Красава! Всегда жду твоего видео
@musoroszhigayschiy_zavod76
@musoroszhigayschiy_zavod76 4 ай бұрын
Автору респект. Все понятно рассказывает и выкладывает исходный код👍 так почему же такие ролики не набирают просмотры?
@picha_titan
@picha_titan 3 ай бұрын
Ролики набирают потом просмотры. Лучшего контента по данному направлению в Ютубе нет и близко. На таком уровне. Здесь сейчас информации много стало и непростая она от этого тоже. Но все равно, данный плейлист найдет зрителя своего. Это же самый крупный канал по питону, ну по мне так.
@ardeni2561
@ardeni2561 4 ай бұрын
новая серия любимого сериала "приятное с полезным"!
@desorrmarkovskii8648
@desorrmarkovskii8648 4 ай бұрын
Круто! Сколько ещё серий планируется по данному курсу?
@user-kx1wv2uy9m
@user-kx1wv2uy9m 4 ай бұрын
О класс, а вот и продолжение подкатило :)
@ivanshinkevich974
@ivanshinkevich974 3 ай бұрын
спасибо большое за урок!
@SOD1QOV08
@SOD1QOV08 3 ай бұрын
raxmat brat ishizga omad
@user-cf8lt1de8k
@user-cf8lt1de8k 27 күн бұрын
очень крутой контент, видно, что автор знает, как должен выглядеть хороший код, но для меня это всё пока оверсложно
@user-fk5qd1rg1u
@user-fk5qd1rg1u 2 күн бұрын
Да видео классное особенно с postgresql да про платёжную систему хотелось бы узнать))
@user-lj1dp3yw4q
@user-lj1dp3yw4q 4 ай бұрын
Броу , по голосу ты болеешь, не болей даже если не болеешь ❤
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Спасибо!) Нет, просто "разговориться" нужно))) К середине видео голос в норму придет)
@user-cp8ou1ot5z
@user-cp8ou1ot5z 4 ай бұрын
Видео как всегда БОМБА!!! Еще бы прикрутить крон задачи, например каждый день присылать что то в чат или админку, или статистику за день. Какую библиотеку лучше для этого выбрать и так далее! Думаю такой функционал запланированных задач будет часто использоваться в боте!
@shemyatin_konstantin
@shemyatin_konstantin 3 ай бұрын
Здравствуйте, поддерживаю, про крон задачи было бы интересно!
@falsepositive732
@falsepositive732 2 ай бұрын
Спасибо за урок! Доделай пожалуйста до конца, хочется увидеть как ты реализуешь полное оформление товара
@user-mc2lx1nj6n
@user-mc2lx1nj6n 3 ай бұрын
Большое спасибо вам за ваши видео! Запишите пожалуйста уроки про WebApp и про оплату в Telegram.
@sunso2262
@sunso2262 4 ай бұрын
Спасибо!
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Благодарю за поддержку!
@uglyhurd4959
@uglyhurd4959 2 ай бұрын
Привет. Спасибо за отличный курс. Вопрос, у тебя бд предусмотрена на то, что бы подключать к каждому пользователю свою корзину?
@Kovryzhkin
@Kovryzhkin 4 ай бұрын
Две недели мучительных ожиданий. Спасибо
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Как успеваю..(( , 👍
@user-bu4ly2fb5u
@user-bu4ly2fb5u 3 ай бұрын
Привет, курс очень понравился можно ли сделать видео по оформлению заказа пожалуйста
@user-ge4ci9gb3v
@user-ge4ci9gb3v 3 ай бұрын
Спасибо за Ваш труд, автор! Будет ли продолжение? Оформление заказа и запись заказа в отдельную таблицу для историчности?
@user-we5ji4ru8e
@user-we5ji4ru8e 3 ай бұрын
Большое спасибо за курс! Очень полезный материал в доступном без излишних терминов виде. Автору респект. Подскажите видео по деплою из курса aiogram 2 ещё актуально? Будет ли новое видео про деплой?
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Во первых, здесь дело в том, что на разных сервисах процесс деплоя приложения разный. На хероку бесплатного варианта больше нет, и немного поменялось то, как передавать данные в бота для работы. Но суммарно ничего нового.
@user-dd1cy2qs5z
@user-dd1cy2qs5z 3 ай бұрын
Добрый день, когда будет следующее видео!? На основе Вашего урока создал бота. С одной стороны я учусь с другой стороны создал бота для девушки с двумя детьми и золотыми руками который поможет ей в ее хобби. Работает все пока как каталог, не хватает ума и знаний прикрутить оплату. Очень ждём и надеемся на Вас❤
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Спасибо за отзыв, очень красиво написано. Не знаю когда выпущу продолжение по этому курсу.
@musoroszhigayschiy_zavod76
@musoroszhigayschiy_zavod76 4 ай бұрын
👍👍👍👍
@user-dr.Pazzle
@user-dr.Pazzle 3 ай бұрын
Еще одна огромная просьба🙏... Может быть как отдельный урок или курс...деплой на сервер с помощью CI/CD и GitHub Actions. Может добавить еще докер.
@user-qp1ew9tq8o
@user-qp1ew9tq8o 3 ай бұрын
Оформление заказов будет? (чтоб приходили заказы пользователей админу)
@user-bu4ly2fb5u
@user-bu4ly2fb5u 3 ай бұрын
Спасибо большое за даний курс автору.Редко найдешь так хорошо обьясняющий курс. Сейчас нахожусь на 6 видео у меня вопрос можно ли сделать и подключить оплату в боте , надеюсь это будет на 7-8 уроке если нет то скажите как это сделать
@aisgais3727
@aisgais3727 3 ай бұрын
Спасибо за эту серию роликов❤, все понятно и поэтапно проходится. Так как только начал изучать питон и ООП соответственно, приходится пересматривать ролики по 10+ раз. Я вам наверное уже просмотров 💯 сделал :)). Этот ролик вообще поминутно изучаю, спасибо большое за труд!! Есть вопрос, будет ролик по добавлении оплаты? Например BTC, USDT? Будет ли ролик с выгрузкой на сервер?
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Ещё не знаю буду делать или нет
@kootlife9432
@kootlife9432 3 ай бұрын
@@PythonHubStudio Не узнали еще?) очень жду новых видео хотелось бы хоть какой нибуть информации о новых видео, вы прям как сериал который заканчивается на самом интересном моменте....
@user-mo9wf1dl5u
@user-mo9wf1dl5u 2 ай бұрын
@@PythonHubStudio здравствуйте! подскажите пожалуйста, есть тест и есть три списка и в зависимости от input числа нужно взять подходящий элемент из списка, чтобы тест заработал, как это сделать? пробовал срезы не получается привязать к инпуту
@alexanderpride1131
@alexanderpride1131 3 ай бұрын
Алекс, спасибо за уроки, очень круто! И вопрос: а ты будешь внедрять web_app для бота в туториале?
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
В планах есть, но как скоро это будет не знаю
@alsoduos
@alsoduos 4 ай бұрын
while True: print('Огромное спасибо!!!!')
@kirillsarokurov9260
@kirillsarokurov9260 Ай бұрын
Хотелось бы увидеть продолжение. Реализацию кнопки "заказать". Я считаю что плейлист не завершен, так как непонятно кто будет обрабатывать заказ, куда будет приходить информация о заказе, как работники поймут что вообще кто-то что-то заказал
@aiko_here.0_0
@aiko_here.0_0 2 ай бұрын
Уважаемый Товарищ , будьте так добры сделать полный курс по JS,, если будет такая возможность, мы все будем вам при много благодарны!
@zummabox2397
@zummabox2397 2 ай бұрын
Здравствуйте! Очень благодарен вам за ваш бесценный труд! Лучший курс, что можно найти на yputube!
@user-wd6dx3uo6g
@user-wd6dx3uo6g Ай бұрын
друг, пожалуйста, сделай видео о переводе бота на webhook, думаю, многим было бы очень полезно и необходимо. спасибо!
@user-nv6cv3im1y
@user-nv6cv3im1y 3 ай бұрын
Здравствуйте, делала бота по вашему туториалу, заметила такую штуку, что в callstack создается много asyncio_0, asyncio_1 и тд, которые не завершаются. Можно это както решить, или если будет под 100 асинков, то ничего страшного?
@sanyajc5300
@sanyajc5300 3 ай бұрын
Супер, спасибо за старания!) Есть вопрос про edit_text, помню как то натыкался, у кого то, на создание счетчика времени через edit_text, ещё на 2ой версии aiogram, и там говорили что при каком то кол-ве запросов бота на edit, боту прилетал бан. Не проверяли в 3 версии такого не будет?
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Не попадалось такого, на этой схеме работает множество магазинов в ТГ. Дело в том что бот может отхватить бан по многим причинам (подозрительные действия по многим факторам, вообщем нюансы)
@Kovryzhkin
@Kovryzhkin 3 ай бұрын
Добрый вечер мой, и надеюсь не только мой, самый любимый автор обучающих каналов на шару. Хочу спросить. Я слышал о такой библиотеке, как aiogram-dialog. Насколько понимаю, она как раз для таких инлайн общения с пользователем. Вопрос. Слышали ли вы о ней? И, если да, то почему не использовали? {ответ: "не хотел использовать доп библиотеки, а показать как делать все самому, чтоб больше научить вас"}, хороший, но все же?)
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Фреймворк над фреймворком (*по моему мнению!) не очень хорошая идея. Меньше контроля и больше зависимости. Ее знаю, будет время выпущу видео
@Oleg_57rus
@Oleg_57rus 4 ай бұрын
Здраствуйте, как всегда урок 💯💣 Небольшой вопросик, а кнопка Заказать в дальнейшем прикрутится к коду для её назначения.
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Ещё не знаю, буду делать или нет
@Oleg_57rus
@Oleg_57rus 4 ай бұрын
@@PythonHubStudio Понял спасибо
@user-xr1ro9kn9q
@user-xr1ro9kn9q 14 күн бұрын
Крутой контент. Спасибо огромное... А у вас случайно нет желания сделать какой-нибудь классный проект на fastapi + aiogram? Было бы очень круто. И это сейчас очень востребовано!
@PythonHubStudio
@PythonHubStudio 11 күн бұрын
Желания в такой комбинации что-то делать нет. Хотя бы потому что aiogram - самостоятельная библиотека и если использовать что-то вроде fastapi, django или flask, то сразу к бекенду сайта писать функционал для бота через них.
@glebgurzhiy1055
@glebgurzhiy1055 4 ай бұрын
Спасибо,видео классное,но мне кажется было бы намного лучше,если бы вы не показывали изменения,которые сделали,а на видео всё писали и объясняли,да получилось бы дольше,но мне кажется лучше разбить на несколько видео и тогда бы получилось более доходчиво,хоть и повторялись бы технологии,но так их лучше можно было бы запомнить и научиться применять,всё равно спасибо за видео,у вас лучший канал по питону на ютубе и вы очень хорошо объясняете,все мои знакомые,которые видели ваши видео это подтверждают,без вас я бы не умел писать ботов и делать маломальские проекты на джанго
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Заняло бы много времени... Такой код "навскидку" онлайн написать проблема, было бы много тестов. Постарался все рассказать.
@picha_titan
@picha_titan 3 ай бұрын
Согласен с автором. Очень много времени было бы. Здесь упор на информацию, очень много полезной информации.
@user-ym7de5ke8q
@user-ym7de5ke8q 4 ай бұрын
Большое спасибо за Ваш труд! Планируете ли Вы рассказать о функционале веб приложений в telegram?
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Ещё не знаю буду делать или нет..
@user-ym7de5ke8q
@user-ym7de5ke8q 3 ай бұрын
Спасибо! Если будет время, расскажите пожалуйста об этом функционале.
@Kovryzhkin
@Kovryzhkin 3 ай бұрын
​@@PythonHubStudioочень актуальная тема. На вас вся молитва. Подумайте хорошо. Никто, кроме вас, не сможет так вашим преданным подписчикам донести эту тему. Чистые боты уже не так интересны заказчикам, как с веб приложениями. Надеюсь благодарные подписчики будут потом 10% от продаж отдавать в поддержку канала)
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
))), сделаю, но не "завтра")
@MrSasuke1337
@MrSasuke1337 3 ай бұрын
Здравствуйте, добавьте пожалуйста на 9 уроке раздел тех.поддержки для бота, очень полезная функция
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Тех поддержка это - базовый вопрос-ответ. Вся инфа по aiogram, чтоб это реализовать уже показана
@jessicalang3654
@jessicalang3654 2 ай бұрын
Расскажите пожалуйста про рабочие VPN
@user-ro8iq2kd7w
@user-ro8iq2kd7w Ай бұрын
Здравствуйте, продолжение будет,чтобы в группу приходил заказ от пользователя?
@SuperYuri009
@SuperYuri009 2 ай бұрын
Спасибо вам за ликвидацию безграмотности.
@ur_senior
@ur_senior 18 күн бұрын
Спасибо большое, но у меня есть нюанс, в вашем видео во всех уровнях есть фото, поэтому можно без проблем использовать метод edit_media(). Но что если в предыдущем сообщении нет фото? Можно ли как-нибудь изменить сообщение и заодно добавить фото и наоборот?
@PythonHubStudio
@PythonHubStudio 16 күн бұрын
Нет, как и говорилось, изменить текстовое сообщение на сообщение с фото нельзя. Именно поэтому, в данном варианте, первое сообщение от бота сразу с изображением.
@ivanshinkevich974
@ivanshinkevich974 3 ай бұрын
😀
@user-fo3wf3ry6x
@user-fo3wf3ry6x 3 ай бұрын
А будут ли ещё видео по интернет мпгазину джанго
@user-qp1ew9tq8o
@user-qp1ew9tq8o 3 ай бұрын
А эти заказы куда идут? Админу?
@ArtemAnt-bj1uh
@ArtemAnt-bj1uh 3 ай бұрын
Здравствуйте, писал бота. На некоторых моментах обращался к вашим видео. Спасибо вам огромное. Мой бот работает по типу тех поддержки отвечает на заготовленные вопросы. И все бы ничего но не могу сделать кнопку назад. Процесс должен быть построен таким образом: выбрали категорию вопроса и запомнили его айди. после нажатия на кнопку назад мы должны откотится к этому айди по нему сделать запрос. Для сохранения мне обязательно использовать ФСМ?
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Если вам что-то нужно запомнить для конкретного юзера - есть два варианта: 1) сохранить это в fsm или 2) в каждом следующем хендлере делать запрос по id в бд. 1й вариант дешевле по производительности
@ArtemAnt-bj1uh
@ArtemAnt-bj1uh 3 ай бұрын
@@PythonHubStudio Спасибо огромное!
@sc0sc0rp10n
@sc0sc0rp10n Ай бұрын
Подскажите, после первого редактирования меню у пользователя (49:42) после команды Старт появляется обложка и все кнопок нету, в комментариях писали что в команде старт должно быть media.media , но это у меня написано, + я из конечного Вашего файла скопировал фрагменты отвечающие за кнопки и все равно результат тот же. Может подскажете в чем может быть проблема?
@PythonHubStudio
@PythonHubStudio Ай бұрын
Если нет ошибки, то помочь так не реально. Единственное что можно так посоветовать, это проверить, отправляются ли кнопки в хендлере вместе с картинкой
@sunso2262
@sunso2262 4 ай бұрын
Здравствуй! А можно ли изменить, обновить, добавить каикое-либо данные в таблице бд, без фсм машины?
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Без проблем, просто она позволяет контролировать процесс. Можно вводить четкие данные по команде с дополнительными аргументами: Допустим есть хендлер на команду /add, чтоб передать доп аргумент, в чате нужно ввести: /add some_text_with_data А в хендлере, который ловит команду add, просто извлеч эти доп данные: message.text.split()[-1]
@USER_____Oo_____USER
@USER_____Oo_____USER 3 ай бұрын
Сколько ещё видео планируешь по этому курсу?
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Не знаю еще
@user-xd5wq9ce6p
@user-xd5wq9ce6p 3 ай бұрын
А можешь записать урок как сделать FSM для добавления данных в БД на inline клавиатуре ?
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Об этом было сказано, в том числе в миксе с message и callback хендлерах: Шаги по fsm зависят только от вашей команды в любом хендлере, о смене состояния на следующее. И не важно где.
@MILAshka666
@MILAshka666 2 ай бұрын
Спасибо большое за курс!Но есть одна проблема с ботом, когда админ удаляет товар из ассортимента и этот самый товар лежит у пользователя в корзине, то корзина ломается полностью. Пытался исправить сам, не выходит, подскажите пожалуйста🥺
@PythonHubStudio
@PythonHubStudio 2 ай бұрын
Сверьтесь с исходником, это учтено в коде, и в видео это было (насколько помню)
@avaz_ohunov
@avaz_ohunov 3 ай бұрын
А будут ещё уроки для этого плейлиста? Или всё, что нужно, Вы уже рассказали?
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Ещё не знаю буду делать дальше или нет
@shemyatin_konstantin
@shemyatin_konstantin 3 ай бұрын
​@@PythonHubStudio, пожалуйста, делайте дальше!
@user-dr.Pazzle
@user-dr.Pazzle 4 ай бұрын
Будет ли видео по добавлению в проект платежного сервиса какого-либо?
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Будет
@user-gp3fs8nz6h
@user-gp3fs8nz6h 3 ай бұрын
Здраствуйте, я обожаю ваши видео, учиться по ним одно удовольствие, у меня есть вопрос, я попробовал повторить вашего кренделя, получилось просто замечательно, взял даже как проект в колледже, голосовой ассистент для колонки, подключить вход колонки получилось, а вот с выходом проблемы, не представляю, как сделать так, чтобы голос воспроизводился не на компьютере, а на колонке, буду крайне благодарен вам если поможете с этим вопросом!
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Получите озвучку в виде готового файла или потока и передавайте через библиотеку для блютуз работы, а не воспроизводить на пк
@user-gp3fs8nz6h
@user-gp3fs8nz6h 3 ай бұрын
@@PythonHubStudio спасибо за совет
@nusudo3381
@nusudo3381 4 ай бұрын
Здравствуйте, пожалуйста сделайте в будующем как делать бота на дискорд на пайтоне
@musoroszhigayschiy_zavod76
@musoroszhigayschiy_zavod76 4 ай бұрын
Было бы круто реализовать внутри категории 'напитки" добавить "горячие напитки" "холодные напитки" и тд
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Да, было бы круто! Реализуете, вся инфа предоставлена. Для отдельного видео это точно делаться не будет, чтоб не дублировать информацию.
@Kovryzhkin
@Kovryzhkin 4 ай бұрын
Столкнулся с нелепой ошибкой. У меня 2 юзера. Один давний и его ID 8 цифр. Второй свежее - 10 цифр. Там где 8, то добавляет в базу юзеров и все работает без ошибок, а вот там где 10 не добавляет. OverflowError: value out of int32 range. Как я понимаю нужно заменить на Bigint. Но в базе самой то поменять легко, а вот как оно звучит в models?
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
BigInteger или храните как строковое значение. docs.sqlalchemy.org/en/20/core/types.html
@Kovryzhkin
@Kovryzhkin 4 ай бұрын
@@PythonHubStudio Ура!!!! Решил. Буду у автора тестировщиком Изменил одну строку в классе User с последующим импортом на user_id: Mapped[int] = mapped_column(BigInteger, unique=True) !!!!!и все работает!!!! И, кстати, еще одно заметил. Если вы делаете новую базу, сделали дроп, запустили бота и не увидели никакой реакции, то не пугайтесь. Вводите /admin сразу и приступайте к наполнению базы.
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
👍, (поправил в репозитории). На самом деле это очень смешной баг с моей стороны)))) Я прикинул, что в int32 - 10 знаков, и вроде как как раз для id, но пропустил что эти 10 знаков до числа 2147483647... И мой id "влез" в диапазон)))
@user-dd1cy2qs5z
@user-dd1cy2qs5z 3 ай бұрын
Добрый день!!! Вы очень большой Молодец, у Вас самый позновательный и с доступным языком для понимания. Я с первого урока делаю все, как показанно в видео и все получалось до этого выпуска. Было бы не плохо создать группу в телеграме для единомышленников так сказать и обсуждения технических вопросов. А вопросов много!!! Например у меня не запускается меню и я думаю что это связано с загрузкой Image. Так же обратил внимание на то что выложенная папка banners в коде прописана как banner если я все правельно понимаю. Ошибка у меня идет при обпрощении пользователя при старте Input should be an instance of InputFile. Подскажите что зделать что бы все заработало.
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Название папки не имеет вообще никакого значения. banner (в единственном числе) это имя таблицы в бд, откуда считывается запись с информацией о баннере (ид изображения, имя, описание). У вас скорее всего в хендлере start не хватает распаковки объекта InputMedia на media.media, как в исходнике и было показано. Или изображения баннеров не загрузили через админку
@user-dd1cy2qs5z
@user-dd1cy2qs5z 3 ай бұрын
Спасибо за ответ!!! Загрузил через админа меню все продукты отражаются в pgAdmin все супер!
@user-dd1cy2qs5z
@user-dd1cy2qs5z 3 ай бұрын
pythonhubstudio Есть же группа 11 чел. подписаны но группа закрыта для обсуждения. Автор это Ваша группа? Откройте будет веселей, и обсуждений и идей накидают
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Нет, это не моя группа, свою ещё не делал, а шакалов много... Сверьтесь с моим исходником на GitHub.
@user-dd1cy2qs5z
@user-dd1cy2qs5z 3 ай бұрын
@@PythonHubStudio Пожалуйста сделайте группу!!! Очень актуально!!! Дело пяти минут, и Вас не кто дергать не будет, я думаю наберётся группа единомышленников и многие вопросы, предложения и идеи будем там обсуждать. Очень хочу понять тему и разобраться но даже спросить не у кого нет в моем окружении кто бы подсказал.
@TheTVfootbal
@TheTVfootbal 2 ай бұрын
А как можно сделать, чтобы старые сообщения удалялись и от бота и от пользователя , чтобы не заполнять чат? Что нужно использовать middleware или handler с callback?
@PythonHubStudio
@PythonHubStudio 2 ай бұрын
Сообщения можно удалить только первые 48 часов. Чтоб это делать нужно вести базу данных по чатам+сообщениям с датой, и через, 47 часов каждое сообщение удалять. Тут дел очень много и вариантов.... В комментариях не описать. Взгляните на библиотеку celery, для фоновых отложенных задач. А вообще, их можно сразу удалять и все, или смоделировать поведение бота через измение сообщения.
@sunso2262
@sunso2262 4 ай бұрын
Привет! Лучший туториал-обучение на ютубе! Можешь подсказать, как красиво удалять сообщение ботом, после отправки след смс? Буду очень благодарен!
@sunso2262
@sunso2262 4 ай бұрын
Именно кодом, никак не могу найти, спасибо!
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Простой вариант: await message.delete() или await callback.message.delete() Также можно через бота: В параметрах хендлера пробрасываем экземпляр бота: from aiogram import Bot (message: Message, bot: Bot): await bot.delete_message(chat_id, message_id) Или await bot.delete_messages(chat_id, list_message_ids)
@sunso2262
@sunso2262 4 ай бұрын
@@PythonHubStudio Спасибо! Лучшие обучение и фид бек в этой сфере!
@Kovryzhkin
@Kovryzhkin 3 ай бұрын
​@@PythonHubStudioя над этим вопросом тоже туплю. Так хочется убрать лишний мусор в чате с юзером. Хочется просто делать edit_text в обычных хендлерах, а не callback или хоть просто удалять не предыдущее, не текущее, а именно то, что я хочу сообщение. Гуглю, аилю, но результата никак не добьюсь. Уже и бота в параметрах прописывал, и делал bot.delete, но вечно получаю ошибку. То много аргументов, то чат айди не найден. Уже думаю в fsm вставлять. Короче.... Забор. Можете немного подробней описать как сделать так, чтоб messege был выведен в одном хендлере, а удаление его или изменение можно было сделать не в следующем, а в абсолютно произвольном хендлере? Как правильно сохранить вначале chat_id и message_ID и потом как правильно обратиться именно к ним?
@Kovryzhkin
@Kovryzhkin 3 ай бұрын
​​​​@@PythonHubStudioя хочу сделать так, чтоб было понятно зачем мне это. Добавляю, к примеру, юзера. Вывожу сообщение с его именем, подразделением, датой рождения... всякая информация и через тире - пусто. Потом запускаю fsm и начинаю добавлять значения в поля. Хочу после каждого добавления обновлять как то входящее сообщение, чтоб было визуально красиво, что уже добавлено, а что ещё нужно добавить. Особенно большая проблема, если выводится информация с инлайн клавиатурой типа "добавить" "изменить" по нажатию запускаем fsm в callback (там легко сделать edit_text), но потом вызывается message для добавления данных и уже edit_text не проходит, а удалить через одно у меня не выходит, чтоб вывести заново информацию. А так же. Повторно вызвать обычную функцию, где ранее выводился message, легко. А можно ли вызвать заново callbeck функцию? Как ей сново передать в аргументы тот фильтр, с которым связан её вызов? ПОМОГИТЕ
@musoroszhigayschiy_zavod76
@musoroszhigayschiy_zavod76 4 ай бұрын
Как добавить категорию или изменить "о нас", без дропа базы?
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Я этот функционал здесь не делал. Но вы уже можете доделать это сами: Для изменения "о нас": добавьте пункт в fsm по добавлению/изменению баннера (как пример есть fsm по добавлению/изменению товара), а сам запрос к орм менять почти не нужно, просто добавьте туда ещё один аргумент description. Для добавления новой категории: написать запрос через орм для добавления категории и сделать микро fsm для этого по аналогии.
@musoroszhigayschiy_zavod76
@musoroszhigayschiy_zavod76 4 ай бұрын
Пасиб👍 обязательно попробую 👍
@Kovryzhkin
@Kovryzhkin 4 ай бұрын
@@musoroszhigayschiy_zavod76 Так как эта информация не особо изменяемая, а заносится почти один раз, то можно просто зайти в базу и изменить значение поля. Как по мне
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Соглашусь с тем, что все манипуляции с бд не нужно делать через админку в боте. Она только для основных нужд, иначе код бота станет слишком избыточным. Но всё-таки можно, особенно с реализацией для магазина. (Один шаблон потом можно продавать разным заказчикам)))
@Kovryzhkin
@Kovryzhkin 3 ай бұрын
Добрый день. Еще вопрос. Вижу у вас он не реализован тоже. Если при добавлении или изменении товара нерадивый админ вместо текста введет /start, то состояние не сбрасывается, мы переходим на страницу старт и все виснет. Как ему запретить вводить команды, когда он в состоянии? F.text & ~ F.text.startswith('/') результатов не дает. Если есть четко прописанная команда, то он ее выполняет все равно.
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Вы можете добавить то, что мы уже проходили, в фильтр хендлеров команд, а именно "стэйт фильтр None", или хендлеры команд опустить ниже в очередности и другие варианты.
@Kovryzhkin
@Kovryzhkin 3 ай бұрын
@@PythonHubStudio Ниже тоже думал. Но вот None думаю будет получше. Спасибо. Как всегда обратная связь на высоте. Как Вы все успеваете? Жду ответов на delete(). Больной вопрос на сегодня(
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Ответ уже есть) Проблем с ответом на комменты раз в день нет), как на смс-ки)
@Kovryzhkin
@Kovryzhkin 3 ай бұрын
@@PythonHubStudio Вот бывает, что простое рядом, а ты все усложняешь. Поставил в хендлере @admin_router.message(StateFilter(None), CommandStart()) и все. И нет пути админу к старту в состоянии ввода. Спасибо огромное.
@Nick01new01
@Nick01new01 4 күн бұрын
Здравствуйте, скажите, а как правильней каждый класс писать в отдельном файле или все в одном, как у вас? просто некоторые пишут в отдельном, поэтому хочу понять это для удобства пишут или по какому-то паттерну делают.
@PythonHubStudio
@PythonHubStudio 4 күн бұрын
Группировка по группам предназначения
@Nick01new01
@Nick01new01 Күн бұрын
Спасибо!
@ypohut1673
@ypohut1673 4 ай бұрын
могли бы вы для ВК Бота так же создать пожалуйста? ВК куча бабла сравнительно с телеграмм
@user-tl1xy9bc2i
@user-tl1xy9bc2i 4 ай бұрын
подскажите пожалуйста, на какой платформе собирать пк для пайтона? amd или intel?
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Не собирайте ПК только для python, или под какой-то другой отдельный язык..., потому что всегда в итоге придется выучить второй. Но, (исключительно мое мнение!!!), между этими вариантами, насколько мне встречалось и известно, не будет разницы. По крайней мере, в сферах где я работаю, особой разницы не наблюдалось, даже на мак и прочих arm все работают. Но погуглите ещё, чтоб не зависеть от мнения одного
@user-tl1xy9bc2i
@user-tl1xy9bc2i 4 ай бұрын
@@PythonHubStudio Я в этой сфере только начинаю, даже книгу Эрик Мэтиз читаю)). У Меня брат работает только вот в железе ничего не понимает. Знаю только пайтон, докер и пайчарм эти программы нужны
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Спросите у брата, как с этим дела у его компаньонов...
@user-tl1xy9bc2i
@user-tl1xy9bc2i 4 ай бұрын
@@PythonHubStudio спасибо огромное) только им как моему брату в магазине собирали))
@user-zi3fm6oq4d
@user-zi3fm6oq4d 6 күн бұрын
много реализаций кнопок, совсем запутался я, разве не проще всё сделать на инлаён кнопках, стандартизировать пагинацию и слать на все вопросы её
@PythonHubStudio
@PythonHubStudio 5 күн бұрын
Это сделано для обучения - варианты для примера
@Great_Ave
@Great_Ave 3 ай бұрын
Стоит ли ждать видео по подключению redis?
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Стоит, но не знаю когда выпущу) Поэтому, если срочно, то не стоит
@Great_Ave
@Great_Ave 3 ай бұрын
@@PythonHubStudio с нетерпением ждем! Это в любом случае должно быть интересно
@creativejuices91
@creativejuices91 Ай бұрын
подскажите пожалуйста что может быть не так в пагинаторе? делал всё по видосам. но что-то пошло не так. start = (self.page - 1) * self.per_page ~~~~~~~~~~^~~ TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'
@creativejuices91
@creativejuices91 Ай бұрын
товары не показывает после того как выбрал категорию
@creativejuices91
@creativejuices91 29 күн бұрын
я в get_menu_content попробовал по дефолту передавать в page = 1, тогда показывает товары, но пагинация не работает. Пишет: Telegram server says - Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message
@creativejuices91
@creativejuices91 27 күн бұрын
решил проблему. я просто не передавал параметр page в эту функцию
@yerkinakhmetzhanov
@yerkinakhmetzhanov 3 ай бұрын
а как загрузить изображения с полями str вне бота ? отдельно в Postgresql ? за работу отдельное спасибо, проделан гиганский труд.!
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Бот может отправлять изображения по id, только если эти изображения были отправлены ему (или в личке или он его видел в группе, где он участвует). Без участия бота изображение в бд придется грузить в поле типа BLOB (для бинарных данных, так сказать). Это значит прочитать изображение через InputFile или open в режиме rb, или лучше через BytesIO и писать как строку байтов...
@yerkinakhmetzhanov
@yerkinakhmetzhanov 3 ай бұрын
@@PythonHubStudio или base64
@user-sd6rx4sj1r
@user-sd6rx4sj1r 14 күн бұрын
Добрый день! Хотел бы узнать можно ли как это удалить кнопку после ее нажатия? Ни как не могу найти решение(
@PythonHubStudio
@PythonHubStudio 11 күн бұрын
Это в видео было . one time keyboard параметр True . В инлайн кнопка тоже было пояснение
@musoroszhigayschiy_zavod76
@musoroszhigayschiy_zavod76 4 ай бұрын
как из цены убрать знак доллара??? а то люди не поймут про суп стоимостью в 250 долларов)))
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Просмотрите код... Знак $ добавлен в строках при формировании caption изображения....
@zarinamanasbekkyzy4233
@zarinamanasbekkyzy4233 Ай бұрын
Этот проект выполнен в Джанго?
@PythonHubStudio
@PythonHubStudio Ай бұрын
Нет, в aiogram 3
@tatianasmatova5963
@tatianasmatova5963 25 күн бұрын
а как вывести дополнительно название категории в описании товара?
@PythonHubStudio
@PythonHubStudio 24 күн бұрын
category.name, если ваш объект из бд о категории назван category (переменная)
@tatianasmatova5963
@tatianasmatova5963 23 күн бұрын
@@PythonHubStudio Это было первое и естесственное, что я попробовала. Но тут же словила ошибку AttributeError: 'int' object has no attribute 'name'. Сейчас борюсь с тем, как правильно передать category.name.
@yerkinakhmetzhanov
@yerkinakhmetzhanov 3 ай бұрын
"категари"=)))
@newtechnologystudios
@newtechnologystudios 4 күн бұрын
Я: Да зачем вообще делать кнопку "о нас", вот через бот фазера можно установить описание для бота *пять минут спустя Я: Так, готово, отпровляю BotFathet: Размер описания не должен превышать 120 символов Я: 🤬🤬🤬
@PythonHubStudio
@PythonHubStudio 3 күн бұрын
😁😅
@user-ln5tr2mg3g
@user-ln5tr2mg3g 16 күн бұрын
ошибку выдает не могу исправить
@PythonHubStudio
@PythonHubStudio 8 күн бұрын
Хотя бы какую, а так про констатацию факта ни о чем...
@user-mi2eb8mc1n
@user-mi2eb8mc1n 3 ай бұрын
Здравствуйте! Хотел бы заказать у вас реализацию одного проекта, просто своих знаний не хватает. Ответьте пожалуйста в комментариях как с вами связаться. Заранее спасибо!
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Заказы не беру
@neruzo1697
@neruzo1697 Ай бұрын
*бать я вах*и а всего-то хотел реализовать кнопку «назад», неужели придется все эти ролики с начала досматривать?
@PythonHubStudio
@PythonHubStudio Ай бұрын
Нет не нужно. Посмотрите только этот. Тем более репозиторий для старта этого есть. Но это и не нужно, смысл тот же, для любой кнопки назад.
@alexandrgurov8154
@alexandrgurov8154 2 ай бұрын
я ваще ни**я ничего не понимаю
@supreltd
@supreltd 2 ай бұрын
А что если сделать класс метод в классе групп состояний? Вдохновился твоим объяснением. class AddProduct(StatesGroup): # Шаги состояний name = State() description = State() category = State() price = State() image = State() product_for_change = None @classmethod def previous_state(cls, current_state: str) -> State: cur_ind = cls.all_states.index(current_state) if cur_ind > 0: return cls.all_states[cur_ind - 1] texts = { "AddProduct:name": "Введите название заново:", "AddProduct:description": "Введите описание заново:", "AddProduct:category": "Выберите категорию заново ⬆", "AddProduct:price": "Введите стоимость заново:", "AddProduct:image": "Этот стейт последний, поэтому...", } @admin_router.message(StateFilter("*"), Command("назад")) @admin_router.message(StateFilter("*"), F.text.casefold() == "назад") async def back_step_handler(message: types.Message, state: FSMContext) -> None: current_state = await state.get_state() print(type(current_state)) previous = AddProduct.previous_state(current_state) if previous: await state.set_state(previous) await message.answer( f"Ок, вы вернулись к прошлому шагу {AddProduct.texts[previous.state]}" ) else: await message.answer( 'Предидущего шага нет, или введите название товара или напишите "отмена"' )
@PythonHubStudio
@PythonHubStudio 2 ай бұрын
Классно получилось!
We Got Expelled From Scholl After This...
00:10
Jojo Sim
Рет қаралды 64 МЛН
Парсим админку Мегамаркета с помощью скрытых API
30:56
Алексей Куличевский
Рет қаралды 44 М.
Telegram Bot Laravel
3:21:22
Дмитрий Повышев Develop
Рет қаралды 4,3 М.