📌 Middleware
Это код, который выполняется перед тем как запустится обработчик. Так можно контролировать нагрузку, делать Antiflood или собирать статистику.
В то время как у
#урок #aiogram
Это код, который выполняется перед тем как запустится обработчик. Так можно контролировать нагрузку, делать Antiflood или собирать статистику.
В то время как у
aiogram 2.0
реализовано множество готовых обработчиков, aiogram 3.0
может похвастаться хорошей документацией.#урок #aiogram
📌 Форматирование параграфа, модуль textwrap
• Функция textwrap.fill() принимает текст в качестве входных данных и возвращает отформатированный текст.
• Текст выравнивается по левому краю, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац.
📕 Документация
#урок
• Функция textwrap.fill() принимает текст в качестве входных данных и возвращает отформатированный текст.
• Текст выравнивается по левому краю, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац.
📕 Документация
#урок
🧩 Гайд по магическим методам в Python
• Магические методы в языке программирования Python нужны, чтобы реализовывать свойства объектов при их взаимодействии.
• В статье раскроем их «магию» и остановимся на каждом из методов подробно.
🧷 https://tproger.ru/articles/gajd-po-magicheskim-metodam-v-python/
#Статья
• Магические методы в языке программирования Python нужны, чтобы реализовывать свойства объектов при их взаимодействии.
• В статье раскроем их «магию» и остановимся на каждом из методов подробно.
🧷 https://tproger.ru/articles/gajd-po-magicheskim-metodam-v-python/
#Статья
📌 Форматирование сообщений
Telegram поддерживает два типа форматирования: HTML и MarkdownV2. Есть ещё Markdown, но он уже устарел.
HTML — форматирование с помощью тегов. Если пользователь отправит
MarkdownV2 — форматирование с помощью спецсимволов:
Предпочтительный использовать HTML, с ним меньше шанс допустить ошибку. Вот тут документация от Telegram.
Код
#урок #aiogram
Telegram поддерживает два типа форматирования: HTML и MarkdownV2. Есть ещё Markdown, но он уже устарел.
HTML — форматирование с помощью тегов. Если пользователь отправит
<b>Этот тест будет жирным<b>
, чтобы не применять форматирование, нужно использовать html.quote()
.MarkdownV2 — форматирование с помощью спецсимволов:
__underline__
, bold text, link on MarkdownV2.Предпочтительный использовать HTML, с ним меньше шанс допустить ошибку. Вот тут документация от Telegram.
Код
#урок #aiogram
🧩 Быстро и просто разворачиваем приложение на Selenium Python в Docker
• Selenium — это инструмент, созданный для автоматизации работы браузера. Он имеет довольно длинную историю, но несмотря на это на данный момент он является главным инструментом, если нужно прибегнуть к автоматизации браузера.
• Но у некоторых может возникнуть проблема с развертыванием кода, использующего этот инструмент, на сервере. На самом деле, все очень просто, если вы знакомы с Docker.
🧷 https://tproger.ru/articles/bystro-i-prosto-razvorachivaem-prilozhenie-na-selenium-python-v-docker/
#Статья
• Selenium — это инструмент, созданный для автоматизации работы браузера. Он имеет довольно длинную историю, но несмотря на это на данный момент он является главным инструментом, если нужно прибегнуть к автоматизации браузера.
• Но у некоторых может возникнуть проблема с развертыванием кода, использующего этот инструмент, на сервере. На самом деле, все очень просто, если вы знакомы с Docker.
🧷 https://tproger.ru/articles/bystro-i-prosto-razvorachivaem-prilozhenie-na-selenium-python-v-docker/
#Статья
🧩 Как создать собственные Python-декораторы и правильно их использовать
• Статья рассчитана на тех, кто владеет основами Python, знаком с декораторами и хочет научиться создавать собственные декораторы для повышения качества кода.
🧷 https://tproger.ru/articles/kak-sozdat-sobstvennye-python-dekoratory-i-pravilno-ih-ispolzovat/
#Статья
• Статья рассчитана на тех, кто владеет основами Python, знаком с декораторами и хочет научиться создавать собственные декораторы для повышения качества кода.
🧷 https://tproger.ru/articles/kak-sozdat-sobstvennye-python-dekoratory-i-pravilno-ih-ispolzovat/
#Статья
🧩 Лайфхаки Python: сэкономить память и ускорить выполнение программы
• Python часто ругают за то, что он медленный. Однако в нем существует несколько подходов, которые позволяют писать достаточно быстрый код. Сегодня поговорим про обработку списков.
🧷 https://tproger.ru/articles/lajfhaki-python-sjekonomit-pamjat-i-uskorit-vypolnenie-programmy/
#Статья
• Python часто ругают за то, что он медленный. Однако в нем существует несколько подходов, которые позволяют писать достаточно быстрый код. Сегодня поговорим про обработку списков.
🧷 https://tproger.ru/articles/lajfhaki-python-sjekonomit-pamjat-i-uskorit-vypolnenie-programmy/
#Статья
Сериализация объектов Python с помощью Pickle
• В данном видео мы узнаем как использовать Pickle для сериализации и десериализации данных, узнаем в каких случаях это стоит применять и какие особенности данной технологии.
• Также в конце видео рассмотрим уязвимости технологии и почему стоит её применять правильно. Если не знать об этом, можно создать проект, который будет уязвим к атакам.
🧷 https://youtu.be/jpBTigXHUeA
#Видео
• В данном видео мы узнаем как использовать Pickle для сериализации и десериализации данных, узнаем в каких случаях это стоит применять и какие особенности данной технологии.
• Также в конце видео рассмотрим уязвимости технологии и почему стоит её применять правильно. Если не знать об этом, можно создать проект, который будет уязвим к атакам.
🧷 https://youtu.be/jpBTigXHUeA
#Видео
Оператор "is" Python сложнее, чем вы думаете
• Подводные камни оператора is, которые могут вас удивить.
• Многие используют оператор "is" для сравнения значений, но не все знают, что это может вызвать огромное количество багов, если не знать о его особенностях, которые рассматриваются в данном видео.
• Мы также рассмотрим примеры, где его точно не следует применять и узнаем о том, почему именно он вызывает подобные баги и как это работает на более низком уровне.
🧷 https://youtu.be/mQk1NIV3HXM
#Видео
• Подводные камни оператора is, которые могут вас удивить.
• Многие используют оператор "is" для сравнения значений, но не все знают, что это может вызвать огромное количество багов, если не знать о его особенностях, которые рассматриваются в данном видео.
• Мы также рассмотрим примеры, где его точно не следует применять и узнаем о том, почему именно он вызывает подобные баги и как это работает на более низком уровне.
🧷 https://youtu.be/mQk1NIV3HXM
#Видео
Как избавиться от циклов импорта в Python?
• В данном видео рассмотрим циклический импорт в Python, который мешает вашей программе сделать нормальную инициализацию модуля.
• В видео есть множество примеров с ошибками, которые могут разрушить ваш проект, и также на каждую ошибку приводится её решение.
🧷 https://youtu.be/dnWgblsNcGA
#Видео
• В данном видео рассмотрим циклический импорт в Python, который мешает вашей программе сделать нормальную инициализацию модуля.
• В видео есть множество примеров с ошибками, которые могут разрушить ваш проект, и также на каждую ошибку приводится её решение.
🧷 https://youtu.be/dnWgblsNcGA
#Видео
📌 Webhook'и
Альтернативный способ получать обновления от серверов Telegram — вебхуки. Бот говорит, на какую ссылку нужно отправлять данные когда происходит какое-то событие.
Библиотека
Вебхуки в Telegram работают только с https ссылками. Если вы не желаете покупать сертификат, можете использовать самоподписанный, но его надо будет передавать в
Гайд по вебхукам от тг
#урок #aiogram
Альтернативный способ получать обновления от серверов Telegram — вебхуки. Бот говорит, на какую ссылку нужно отправлять данные когда происходит какое-то событие.
Библиотека
aiogram
использует aiohttp
как клиент и сервер. Чтобы проверить работоспособность нужен сервер или белый IP, это есть не у всех, поэтому лучше использовать ngrok.Вебхуки в Telegram работают только с https ссылками. Если вы не желаете покупать сертификат, можете использовать самоподписанный, но его надо будет передавать в
bot.set_webhook()
.Гайд по вебхукам от тг
#урок #aiogram
Ctypes Python – огромная скорость и безопасность компонентов
• В данном видео мы рассмотрим способы интеграции Python с языками Си и С++. Мы создадим 3 компонента на языки Си, скомпилируем их в готовые динамические библиотеки и подключим в Python для использования. Сам Python в данном примере служит лишь удобным интерфейсом для взаимодействия с библиотеками.
🧷 https://youtu.be/mYRBJ3oZ0Tw
#Видео
• В данном видео мы рассмотрим способы интеграции Python с языками Си и С++. Мы создадим 3 компонента на языки Си, скомпилируем их в готовые динамические библиотеки и подключим в Python для использования. Сам Python в данном примере служит лишь удобным интерфейсом для взаимодействия с библиотеками.
🧷 https://youtu.be/mYRBJ3oZ0Tw
#Видео
📌
Такой подход называется Bot polling. Он не очень эффективный, время от времени отваливается и создаёт много «шума», поэтому лучше использовать Webhook'и (в след. посте), но за них кому-то придётся платить.
#урок #aiogram
Bot polling
Чтобы понять, написал кто-либо боту или нет, он несколько раз в минуту отправляет запрос на сервера Telegram и спрашивает: «Случилось ли что-то интересненькое?»Такой подход называется Bot polling. Он не очень эффективный, время от времени отваливается и создаёт много «шума», поэтому лучше использовать Webhook'и (в след. посте), но за них кому-то придётся платить.
#урок #aiogram
📌 Запуск скрипта при выполнении импорта
• В момент импорта модуля происходит загрузка его содержимого для последующего доступа и использования. Самое интересное в этом процессе то, что на последнем этапе import запускает код.
• Когда модуль содержит только определения классов, функций, переменных и констант, то не будет видно, что код действительно выполнялся, но когда модуль включает в себя вызовы функций, методов или других инструкций, которые генерируют видимые результаты и расположенные вне сценария верхнего уровня '__main__', тогда станете свидетелем его исполнения.
• Необходимо отметить, что код, который выполняется вне сценария верхнего уровня '__main__' - работает только один раз за сеанс. После первого импорта последующие импорты ничего не делают, даже если изменить содержимое модуля. Это связано с тем, что операции импорта являются дорогостоящими и поэтому выполняются только один раз.
📕 Документация
#урок
• В момент импорта модуля происходит загрузка его содержимого для последующего доступа и использования. Самое интересное в этом процессе то, что на последнем этапе import запускает код.
• Когда модуль содержит только определения классов, функций, переменных и констант, то не будет видно, что код действительно выполнялся, но когда модуль включает в себя вызовы функций, методов или других инструкций, которые генерируют видимые результаты и расположенные вне сценария верхнего уровня '__main__', тогда станете свидетелем его исполнения.
• Необходимо отметить, что код, который выполняется вне сценария верхнего уровня '__main__' - работает только один раз за сеанс. После первого импорта последующие импорты ничего не делают, даже если изменить содержимое модуля. Это связано с тем, что операции импорта являются дорогостоящими и поэтому выполняются только один раз.
📕 Документация
#урок
📌
Пока простые темы, дальше будет интереснее. Всё про aiogram 3.0
Код
#урок #aiogram
Bot
и Dispatcher
Bot(token)
— объект, для работы с API телеграмм. Это просто обёртка, никакой магии здесь нет.Dispatcher(bot)
— обработчик входящих событий: полученное сообщение, отредактированное, Callback'и. Через него можно передавать объекты в функции.Пока простые темы, дальше будет интереснее. Всё про aiogram 3.0
Код
#урок #aiogram
📌 Запуск скрипта в интерактивном режиме с параметром -i
• Иногда необходимо в ручную протестировать некоторые функции или классы скрипта, и здесь программиста выручает интерактивный режим работы интерпретатора Python.
• После того как скрипт отработает, интерпретатор Python перейдет в режим командной строки.
• В этом режиме, например, можно вызвать любую функцию, определенную в скрипте с другими аргументами.
📕 Документация
#урок
• Иногда необходимо в ручную протестировать некоторые функции или классы скрипта, и здесь программиста выручает интерактивный режим работы интерпретатора Python.
• После того как скрипт отработает, интерпретатор Python перейдет в режим командной строки.
• В этом режиме, например, можно вызвать любую функцию, определенную в скрипте с другими аргументами.
📕 Документация
#урок