📌 Класс type() в Python, возвращает тип объекта.
• Класс type() с одним аргументом object возвращает тип объекта. Возвращаемое значение - это как правило, тот же объект, что и возвращаемый object.class.
• Рекомендуется для проверки типа объекта использовать встроенную функцию isinstance(), так как она принимает во внимание подклассы.
Пример использования класса type() при вызове с одним аргументом (код на картинке).
📕 Документация
#урок
• Класс type() с одним аргументом object возвращает тип объекта. Возвращаемое значение - это как правило, тот же объект, что и возвращаемый object.class.
• Рекомендуется для проверки типа объекта использовать встроенную функцию isinstance(), так как она принимает во внимание подклассы.
Пример использования класса type() при вызове с одним аргументом (код на картинке).
📕 Документация
#урок
❤5👍4
📌 Класс tuple() в Python, создает или преобразует в кортеж.
• Класс tuple() создает новую неизменяемую последовательность - кортеж из итерируемого объекта, элементы которого идут в том же порядке, что и элементы переданного в качестве аргумента объекта.
• Объектом может быть последовательность или контейнер, который поддерживает итерацию, либо объект итератора.
— Если iterable уже является кортежем, он возвращается без изменений. Например, tuple('abc') возвращает ('a', 'b', 'c') и tuple([1, 2, 3]) вернет (1, 2, 3).
— Если аргумент не указан, конструктор создает новый пустой кортеж ().
Пример создания кортежа, преобразования объектов в кортеж (код на картинке).
📕 Документация
#урок
• Класс tuple() создает новую неизменяемую последовательность - кортеж из итерируемого объекта, элементы которого идут в том же порядке, что и элементы переданного в качестве аргумента объекта.
• Объектом может быть последовательность или контейнер, который поддерживает итерацию, либо объект итератора.
— Если iterable уже является кортежем, он возвращается без изменений. Например, tuple('abc') возвращает ('a', 'b', 'c') и tuple([1, 2, 3]) вернет (1, 2, 3).
— Если аргумент не указан, конструктор создает новый пустой кортеж ().
Пример создания кортежа, преобразования объектов в кортеж (код на картинке).
📕 Документация
#урок
❤4👍4
📌 Webhook'и
Альтернативный способ получать обновления от серверов Telegram — вебхуки. Бот говорит, на какую ссылку нужно отправлять данные когда происходит какое-то событие.
Библиотека
Вебхуки в Telegram работают только с https ссылками. Если вы не желаете покупать сертификат, можете использовать самоподписанный, но его надо будет передавать в
Гайд по вебхукам от тг
#урок #aiogram
Альтернативный способ получать обновления от серверов Telegram — вебхуки. Бот говорит, на какую ссылку нужно отправлять данные когда происходит какое-то событие.
Библиотека
aiogram использует aiohttp как клиент и сервер. Чтобы проверить работоспособность нужен сервер или белый IP, это есть не у всех, поэтому лучше использовать ngrok.Вебхуки в Telegram работают только с https ссылками. Если вы не желаете покупать сертификат, можете использовать самоподписанный, но его надо будет передавать в
bot.set_webhook().Гайд по вебхукам от тг
#урок #aiogram
❤5🔥3
❤4👍2🔥2
📌 Форматирование сообщений
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
❤5🔥2
📌 Кнопки
Есть два вида кнопок:
• Обычные кнопки — появляются внизу в виде клавиатуры. Просто отправляют сообщение, выбранное пользователем, хотя могут также по нажатию запрашивать аккаунт, геолокацию или создать опрос.
• Инлайн-кнопки — появляются по сообщениями. Могут пересылать людей на определённый URL, отправлять сообщения с данными боту и т.д.
Код
#урок #aiogram
Есть два вида кнопок:
• Обычные кнопки — появляются внизу в виде клавиатуры. Просто отправляют сообщение, выбранное пользователем, хотя могут также по нажатию запрашивать аккаунт, геолокацию или создать опрос.
• Инлайн-кнопки — появляются по сообщениями. Могут пересылать людей на определённый URL, отправлять сообщения с данными боту и т.д.
Код
#урок #aiogram
❤7👍3👎1
📌 Фабрика колбэков
Передавать данные в Inline-кнопки как строки — не удобно. Данные тяжело считывается, код тяжело читается.
Для решения проблемы есть класс
Код
#урок #aiogram
Передавать данные в Inline-кнопки как строки — не удобно. Данные тяжело считывается, код тяжело читается.
Для решения проблемы есть класс
CallbackData, с его помощью создаётся класс, который самостоятельно составляет строку и обрабатывает её. Программисту остаётся работать только с объектом. Код
#урок #aiogram
👍8❤3
📌 Форматирование параграфа, модуль textwrap
• Функция textwrap.fill() принимает текст в качестве входных данных и возвращает отформатированный текст.
• Текст выравнивается по левому краю, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац.
📕 Документация
#урок
• Функция textwrap.fill() принимает текст в качестве входных данных и возвращает отформатированный текст.
• Текст выравнивается по левому краю, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац.
📕 Документация
#урок
❤5🔥3
📌 Middleware
Это код, который выполняется перед тем как запустится обработчик. Так можно контролировать нагрузку, делать Antiflood или собирать статистику.
В то время как у
#урок #aiogram
Это код, который выполняется перед тем как запустится обработчик. Так можно контролировать нагрузку, делать Antiflood или собирать статистику.
В то время как у
aiogram 2.0 реализовано множество готовых обработчиков, aiogram 3.0 может похвастаться хорошей документацией.#урок #aiogram
❤3🔥2
📌 Класс bytearray() в Python, преобразует в массив байтов.
Класс bytearray() возвращает массив байтов bytearray, который является изменяемой последовательностью целых чисел в диапазоне от 0 <= х <256.
Необязательный параметр source можно использовать для инициализации массива несколькими различными способами:
• Если это строка, вы также должны указать параметры кодировки строки или будет ошибка. bytearray() преобразует строку в байты, используя str.encode().
• Если это целое число, то массив будет иметь размер переданного числа и будет инициализирован нулевыми байтами.
• Если это объект, соответствующий интерфейсу буфера, для инициализации массива байтов будет использоваться доступный только для чтения буфер объекта.
• Если это итерация, то это должна быть итерация целых чисел в диапазоне 0 <= x < 256, которые будут используются в качестве начального содержимого массива.
• Без аргумента создается массив размером '0'.
📕 Документация
#урок
Класс bytearray() возвращает массив байтов bytearray, который является изменяемой последовательностью целых чисел в диапазоне от 0 <= х <256.
Необязательный параметр source можно использовать для инициализации массива несколькими различными способами:
• Если это строка, вы также должны указать параметры кодировки строки или будет ошибка. bytearray() преобразует строку в байты, используя str.encode().
• Если это целое число, то массив будет иметь размер переданного числа и будет инициализирован нулевыми байтами.
• Если это объект, соответствующий интерфейсу буфера, для инициализации массива байтов будет использоваться доступный только для чтения буфер объекта.
• Если это итерация, то это должна быть итерация целых чисел в диапазоне 0 <= x < 256, которые будут используются в качестве начального содержимого массива.
• Без аргумента создается массив размером '0'.
📕 Документация
#урок
❤3👍3
📌 SQLAlchemy
Object-Relational Mapper (ORM) — представление реляционной базы данных в виде объектов. Больше не придётся писать SQL-код самостоятельно, это сделает библиотека.
SQLAlchemy — самая популярная ORM для Python. Поддерживает асинхронность, так что может спокойно использоваться с aiogram.
#урок
Object-Relational Mapper (ORM) — представление реляционной базы данных в виде объектов. Больше не придётся писать SQL-код самостоятельно, это сделает библиотека.
SQLAlchemy — самая популярная ORM для Python. Поддерживает асинхронность, так что может спокойно использоваться с aiogram.
#урок
❤2🔥2