Python Telegram Bot
前往频道在 Telegram
☑️ Заявки принимаются автоматически! Обучаем созданию и продвижению чат-ботов в телеграм. ссылка: @pybotg связь: @oksi_young https://telega.in/channels/+Mj_twnrYuAxkZmUy/card/?r=BrHKEWMo
显示更多5 003
订阅者
无数据24 小时
-67 天
+1730 天
帖子存档
5 003
Продолжение к посту выше
Теперь дальше, мы понимаем, как была видоизменена функция
bot_start и что у нее ест троттлинг. Но что оно с этим делает? Ответ находится в throttling.py. В функции __init__ у нас есть какой то дефолтный лимит и префикс для мидлваря, ну и они передаются и сохраняются в self.rate_limit и self.prefix соответсвенно. То есть, если в @rate_limit ничего не указать, то автоматически будет подставляться дефолтный лимит, который в нашем случае равен 0.1 секунде.
После обработки, появляется возможность в функцию on_process присылать разные типы апдейтов. Например, апдейт на сообщение будет выглядеть так: async def on_process_message(self, message: types.Message). Очень важно правильно указывать имя апдейта, так как функция проверяется именно по имени апдейта, то есть то, что вы сюда укажите, такой апдейт и прилетит.5 003
🚀 python_job_interview - настоящий подарок для всех Python разработчиков канал, где собраны все возможные вопросы и ответы с реальных Python собеседований от создателей известного канала Анализ Данных на Python. Для всех уровней разработчиков.
Вопросы с настоящих собеседований, помогут Вам успешно пройти интервью и получить желаемую работу Python разработчика.
5 003
Продолжение к посту выше
У нас есть функция
rate_limit, которая задекорировала функцию bot_start. Данного эффекта мы добились во время теста бота, когда спамили ему командой /start.
Что же произошло на самом деле? Декоратор создал атрибут throttling_rate_limit на нашей функции bot_start и задал ей limit. В итоге, у функции bot_start появился новый параметр, который называется throttling_rate_limit. Для того, чтобы достать этот параметр, достаточно написать print(bot_start.throttling_rate_limit). Параметр будет принимать то значение, которое у нас передано в limit, то есть 10. Помимо этого, если передать ключ, то еще появится атрибут throttling_key, который объединит хендлеры с одним ключом.5 003
Кортежи. Часть 2
Хотя кортежи могут показаться похожими на списки, они часто используются в различающихся ситуациях и для разных целей. Кортежи являются неизменными и обычно содержат разнородную последовательность элементов, доступ к которым осуществляется посредством распаковки или индексирования.
Списки являются изменчивыми, и их элементы обычно являются однородными и доступ осуществляется путем итерации по списку.
Определённая проблема состоит в конструировании кортежей, состоящих из нуля или одного элемента: в синтаксисе языка есть дополнительные хитрости, позволяющие достигнуть этого. Пустые кортежи формируются за счёт пустой пары скобок; кортеж с одним элементом конструируется за счёт запятой, следующей за числом (единственное значение необязательно заключать в скобки). Необычно, но эффективно (Код 1).
Выражение
t = 12345, 54321, 'hello!' является примером упаковки кортежей: значения 12345, 54321 и 'hello!' упаковываются в кортеж. Возможна также обратная операция (Код 2).
#python_обучение5 003
Подними свои навыки в Python!
📖 Книжки айтишки - канал со сливами платных книг для разработки и дизайна. Тут ты найдешь много книжек по Python, с помощью которых подтянешь теоретические знания.
👳🏼♂️ IT Guru - канал с уроками, курсами и фишками IT разработки, в том числе по Python. Тут ты подтянешь свои скиллы и закрепишь практические знания.
Подписывайся и учись!
5 003
Продолжение к посту выше
У нас есть декоратор в файле
start.py, который находиться в handlers/users/start.py. Данный декоратор является функцией и выглядит так: @rate_limit(limit=10). Как раз таки здесь и встречается limit, о котором мы говорили в прошлом посте. По своему функционалу этот декоратор является своеобразным счетчиком, который дает лишь раз в какой то промежуток времени отправлять команду /start. В нашем же случае, это ограничение равно 10 секундам.
Разберемся немного в применении данной функции. Декоратор импортирован из utils.misc командой from utils.misc import rate_limit. В свою очередь, utils.misc является функцией вида def rate_limit(limit: int, key=None), где limit-количество секунд, которое должно пройти, прежде чем сработает троттлинг, а key - параметр, используемый для объединения нескольких хендлеров под одним ключом.5 003
Хочешь научиться кодить на Python, но не хочешь платить за это?
На Python можно сделать многое, в том числе и самый крутой тренд 2022-го — нейросети, тоже пишутся на нём.
Есть способ учиться БЕСПЛАТНО — канал с задачами по Python и машинному обучению, на котором только практика!
Каждый день там публикуют новые задачи — решать их полезнее, чем смотреть видео от очередной онлайн школы.
5 003
Продолжение к посту выше
Начнем с того, что у нас лежит в самой папке
middlewares. Внутри нас встречает 3 файла: наш знакомый init.py, тот самый встроенный троттлинг мидлварь throttling.py и database.py, где мы получает данные о пользователе.
Во встроенном троттлинге у нас есть класс, который наследует BaseMiddleware, который нужно всегда наследовать, для того, чтобы как то его использовать. В том же database.py тоже наследуется класс BaseMiddleware при создании нового мидлваря.
Теперь дальше, когда мы создаем какой то, у нас есть функция init, имеющая какие то параметры. В данном случае функция имеет вид: def init(self, limit=DEFAULT_RATE_LIMIT, key_prefix="antiflood"). В функции объявлены limit и key_prefix, о них мы узнаем чуточку позже.5 003
☑️ Создание и запуск Телеграм бота
• Бюджет: 18 550₽
• Срок: по договоренности
• Задача:
Создание и запуск Телеграм бота Согласно Тех. заданию (во вложении) написать, настроить, подключить к парсерам, установить платежную систему Юмани, установить на …
Откликнуться
5 003
Профессия веб-дизайнера в наше время востребована и хорошо оплачивается!
И если ты хочешь научиться работать в Figma или уже работаешь, то этот пост точно для тебя
Figma - общий канал по веб-дизайну во всеми нами любимой программе, вы сможете научиться работать в ней даже с самого нуля
Макеты Figma - канал, в котором ежедневно публикуются макеты для практики ваших навыков и пополнения портфолио. Полезно как новичкам, так и опытным веб-дизайнерам. Регулярная практика - залог успеха.
⚡️Не упусти свою возможность стать веб-дизайнером и зарабатывать на этом неплохие деньги.
5 003
Кортежи
Кортеж (tuple) представляет последовательность элементов, которая во многом похожа на список за тем исключением, что кортеж является неизменяемым (
immutable) типом. Поэтому мы не можем добавлять или удалять элементы в кортеже, изменять его. Кортеж состоит из некоторого числа значений разделённых запятыми (Фото)
Как видите, кортежи на выводе всегда заключены в скобки, таким образом вложенные кортежи интерпретируются корректно; они могут быть введены и с обрамляющими скобками и без, тем не менее в любом случае скобки чаще всего необходимы (если кортеж — часть более крупного выражения). Невозможно присвоить что-либо индивидуальным элементам кортежа, одинаково возможно создать кортежи, которые содержат изменяемые объекты, такие как списки.
#python_обучение5 003
Теперь, когда дело доходит до того, что вам нужно сделать что то с апдейтом перед тем, как он попадет в хендлер, вам на помощь придут мидлвари.
Мидлвари(middlewares) - это что то типа посредника, который обрабатывает апдейт переде тем, как попасть в хендлер. Данная функция будет полезна, например, для того, чтобы узнать язык пользователя, который сохранен в базе данных и передать его в хендлер. Или, например, чтобы вообще получить данные о пользователе из базы данных и отправить их в хендлер. А еще на примерах
aiogram есть встроенный троттлинг мидлварь, который не дает пользователю флудить в бота запросами. Поэтому, в данных постах будет рассмотрена ветка middlwares.5 003
