📌 Форматирование сообщений
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
🧩 Гайд по магическим методам в Python
• Магические методы в языке программирования Python нужны, чтобы реализовывать свойства объектов при их взаимодействии.
• В статье раскроем их «магию» и остановимся на каждом из методов подробно.
🧷 https://tproger.ru/articles/gajd-po-magicheskim-metodam-v-python/
#Статья
• Магические методы в языке программирования Python нужны, чтобы реализовывать свойства объектов при их взаимодействии.
• В статье раскроем их «магию» и остановимся на каждом из методов подробно.
🧷 https://tproger.ru/articles/gajd-po-magicheskim-metodam-v-python/
#Статья
📌 Кнопки
Есть два вида кнопок:
• Обычные кнопки — появляются внизу в виде клавиатуры. Просто отправляют сообщение, выбранное пользователем, хотя могут также по нажатию запрашивать аккаунт, геолокацию или создать опрос.
• Инлайн-кнопки — появляются по сообщениями. Могут пересылать людей на определённый URL, отправлять сообщения с данными боту и т.д.
Код
#урок #aiogram
Есть два вида кнопок:
• Обычные кнопки — появляются внизу в виде клавиатуры. Просто отправляют сообщение, выбранное пользователем, хотя могут также по нажатию запрашивать аккаунт, геолокацию или создать опрос.
• Инлайн-кнопки — появляются по сообщениями. Могут пересылать людей на определённый URL, отправлять сообщения с данными боту и т.д.
Код
#урок #aiogram
Дорожная карта по Python
• Полезная дорожная карта, которая пригодится начинающим Python-разработчикам и поможет определиться в дальнейшем развитии.
#Roadmap
• Полезная дорожная карта, которая пригодится начинающим Python-разработчикам и поможет определиться в дальнейшем развитии.
#Roadmap
📌 Фабрика колбэков
Передавать данные в Inline-кнопки как строки — не удобно. Данные тяжело считывается, код тяжело читается.
Для решения проблемы есть класс
Код
#урок #aiogram
Передавать данные в Inline-кнопки как строки — не удобно. Данные тяжело считывается, код тяжело читается.
Для решения проблемы есть класс
CallbackData
, с его помощью создаётся класс, который самостоятельно составляет строку и обрабатывает её. Программисту остаётся работать только с объектом. Код
#урок #aiogram
📌 Форматирование параграфа, модуль textwrap
• Функция textwrap.fill() принимает текст в качестве входных данных и возвращает отформатированный текст.
• Текст выравнивается по левому краю, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац.
📕 Документация
#урок
• Функция textwrap.fill() принимает текст в качестве входных данных и возвращает отформатированный текст.
• Текст выравнивается по левому краю, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац.
📕 Документация
#урок
Полная шпаргалка по Python
• Эта шпаргалка содержит всю необходимую информацию для всех уровней разработки.
🧩 Смотреть шпаргалку
#Шпаргалка
• Эта шпаргалка содержит всю необходимую информацию для всех уровней разработки.
🧩 Смотреть шпаргалку
#Шпаргалка
📌 Middleware
Это код, который выполняется перед тем как запустится обработчик. Так можно контролировать нагрузку, делать Antiflood или собирать статистику.
В то время как у
#урок #aiogram
Это код, который выполняется перед тем как запустится обработчик. Так можно контролировать нагрузку, делать Antiflood или собирать статистику.
В то время как у
aiogram 2.0
реализовано множество готовых обработчиков, aiogram 3.0
может похвастаться хорошей документацией.#урок #aiogram
📌 Класс 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'.
📕 Документация
#урок
📌 SQLAlchemy
Object-Relational Mapper (ORM) — представление реляционной базы данных в виде объектов. Больше не придётся писать SQL-код самостоятельно, это сделает библиотека.
SQLAlchemy — самая популярная ORM для Python. Поддерживает асинхронность, так что может спокойно использоваться с aiogram.
#урок
Object-Relational Mapper (ORM) — представление реляционной базы данных в виде объектов. Больше не придётся писать SQL-код самостоятельно, это сделает библиотека.
SQLAlchemy — самая популярная ORM для Python. Поддерживает асинхронность, так что может спокойно использоваться с aiogram.
#урок
📌 Класс bytes() в Python, преобразует в строку байтов.
Класс bytes() возвращает байтовый объект bytes, который является неизменяемой последовательностью целых чисел в диапазоне от 0 <= х <256.
Необязательный параметр source используется для инициализации массива несколькими различными способами:
• Если это строка, вы также должны указать параметры кодировки строки или будет ошибка. bytes() преобразует строку в строку байтов, используя str.encode().
• Если это целое число, то строка будет иметь размер переданного числа и будет заполнена нулевыми байтами.
• Если это объект, соответствующий интерфейсу буфера, для инициализации строки байтов будет использоваться доступный только для чтения буфер объекта.
• Если это итерация, то это должна быть итерация целых чисел в диапазоне 0 <= x < 256, которые будут используются в качестве содержимого строки.
• Без аргумента создается пустая байтовая строка.
Байтовые строки также могут быть созданы с помощью строкового литерала b
📕 Документация
#урок
Класс bytes() возвращает байтовый объект bytes, который является неизменяемой последовательностью целых чисел в диапазоне от 0 <= х <256.
Необязательный параметр source используется для инициализации массива несколькими различными способами:
• Если это строка, вы также должны указать параметры кодировки строки или будет ошибка. bytes() преобразует строку в строку байтов, используя str.encode().
• Если это целое число, то строка будет иметь размер переданного числа и будет заполнена нулевыми байтами.
• Если это объект, соответствующий интерфейсу буфера, для инициализации строки байтов будет использоваться доступный только для чтения буфер объекта.
• Если это итерация, то это должна быть итерация целых чисел в диапазоне 0 <= x < 256, которые будут используются в качестве содержимого строки.
• Без аргумента создается пустая байтовая строка.
Байтовые строки также могут быть созданы с помощью строкового литерала b
📕 Документация
#урок
📌 Дзен Python
Философия программирования от Тима Петерса (PEP20). Состоит из 19 руководящих принципов для написания программ.
Интересно, что последнее правило должен был написать сам разработчик Python — Гвидо Ван Россум, но это место до сих пор пустует. Так создатель хотел показать, что в любых правилах есть исключения.
#урок
Философия программирования от Тима Петерса (PEP20). Состоит из 19 руководящих принципов для написания программ.
Интересно, что последнее правило должен был написать сам разработчик Python — Гвидо Ван Россум, но это место до сих пор пустует. Так создатель хотел показать, что в любых правилах есть исключения.
#урок
📌 Класс complex() создает/преобразовывает число/строку в комплексное число.
• Класс complex() преобразует строку с записью комплексного числа в комплексное число или вернет комплексное число со значением переданных аргументов: действительной и мнимой частью.
• Если первый параметр является строкой, например '3+5j', то выполнится преобразование строки в комплексное число, в этом случае второй параметр imag должен быть опущен.
• Второй параметр imag никогда не может быть строкой. Каждый аргумент может быть любого числового типа (int или float). Если imag опущен, то по умолчанию используется 0. Если оба аргумента опущены, возвращается 0j.
📕 Документация
#урок
• Класс complex() преобразует строку с записью комплексного числа в комплексное число или вернет комплексное число со значением переданных аргументов: действительной и мнимой частью.
• Если первый параметр является строкой, например '3+5j', то выполнится преобразование строки в комплексное число, в этом случае второй параметр imag должен быть опущен.
• Второй параметр imag никогда не может быть строкой. Каждый аргумент может быть любого числового типа (int или float). Если imag опущен, то по умолчанию используется 0. Если оба аргумента опущены, возвращается 0j.
📕 Документация
#урок
📌 Finite State Machine
Конечный автомат — модель, которая говорит что у пользователя может быть определённое состояние, от которого зависит код. Между состояниями можно переключатся.
Если брать игры, то там у игрока есть состояния: бег, прыжок, приседание, ходьба. Если игрок сидит, то проигрывается соответствующая анимация, ходьба замедляется.
Мы же, в ботах, можем использовать состояния для считывания данных пользователя, управления большими меню, ведения нормальных диалогов.
Вообще, чтобы с этим всем не возиться, лучше использовать aiogram-dialog.
#урок #aiogram
Конечный автомат — модель, которая говорит что у пользователя может быть определённое состояние, от которого зависит код. Между состояниями можно переключатся.
Если брать игры, то там у игрока есть состояния: бег, прыжок, приседание, ходьба. Если игрок сидит, то проигрывается соответствующая анимация, ходьба замедляется.
Мы же, в ботах, можем использовать состояния для считывания данных пользователя, управления большими меню, ведения нормальных диалогов.
Вообще, чтобы с этим всем не возиться, лучше использовать aiogram-dialog.
#урок #aiogram
Работа с файлами Python в оперативной памяти. IO Python - Собираем файлы в ОЗУ
• В данном видео мы рассмотрим модуль io, который позволяет использовать буфер для работы с файлами в озу. Мы покажем 2 примера, в которых будем использовать сначала работу с файлами используя для этого файловую систему с сохранением на диск, после чего на этом же примере мы покажем то, как можно производить те же действия используя только ОЗУ и никак не взаимодействуя при этом с жестким диском.
• Такой подход обеспечивает более высокую скорость выполнения и у вас нет необходимости сохранять что либо на диске, так как все действия можно произвести в оперативной памяти, к примеру обработать файл, передать его на сервер, в бота телеграмм и т.д.
🧷 https://youtu.be/ZFyM0JgLqjg
#Видео
• В данном видео мы рассмотрим модуль io, который позволяет использовать буфер для работы с файлами в озу. Мы покажем 2 примера, в которых будем использовать сначала работу с файлами используя для этого файловую систему с сохранением на диск, после чего на этом же примере мы покажем то, как можно производить те же действия используя только ОЗУ и никак не взаимодействуя при этом с жестким диском.
• Такой подход обеспечивает более высокую скорость выполнения и у вас нет необходимости сохранять что либо на диске, так как все действия можно произвести в оперативной памяти, к примеру обработать файл, передать его на сервер, в бота телеграмм и т.д.
🧷 https://youtu.be/ZFyM0JgLqjg
#Видео
📌 Хранение данных пользователя: FSM
Хранить данные о пользователи мы можем или в базе данных (Redis, Mongo) или в памяти. Для тестовой системы или простого бота вполне хватит второго варианта, а вот в проде лучше использовать БД.
Зачем? Таким образом, если у вас будет несколько серверов с запущенным ботом, данные будут всегда актуальны. К тому же, при обновлении бота, состояния пользователей не сбросятся.
#урок #aiogram
Хранить данные о пользователи мы можем или в базе данных (Redis, Mongo) или в памяти. Для тестовой системы или простого бота вполне хватит второго варианта, а вот в проде лучше использовать БД.
Зачем? Таким образом, если у вас будет несколько серверов с запущенным ботом, данные будут всегда актуальны. К тому же, при обновлении бота, состояния пользователей не сбросятся.
#урок #aiogram
SQLITE Python - Создаем форму для регистрации на PYQT5 и SQLITE3
• В данном видео мы создадим окно для авторизации и регистрации в нашем приложении используя sqlite и pyqt5 python. Мы реализуем простое окно, которое будет запрашивать данные пользователя, и в зависимости от его ввода, взаимодействовать с базой данных sqlite3.
• Мы рассмотрим создание таблицы в нашей базе, используя программу sqlite browser и нарисуем интерфейс python программы используя qt designer. Также узнаем каким образом можно добавлять новые значения в нашу базу и находить уже записанные ранее значения для взаимодействия с ними.
🧷 https://youtu.be/5Mm7Fiq3k8c
#Видео
• В данном видео мы создадим окно для авторизации и регистрации в нашем приложении используя sqlite и pyqt5 python. Мы реализуем простое окно, которое будет запрашивать данные пользователя, и в зависимости от его ввода, взаимодействовать с базой данных sqlite3.
• Мы рассмотрим создание таблицы в нашей базе, используя программу sqlite browser и нарисуем интерфейс python программы используя qt designer. Также узнаем каким образом можно добавлять новые значения в нашу базу и находить уже записанные ранее значения для взаимодействия с ними.
🧷 https://youtu.be/5Mm7Fiq3k8c
#Видео
Распознавание речи python с графическим интерфейсом (PYQT5)
• В данном видео реализована программа для распознавания речи python, которая позволяет используя различные методы переводить голос в текстовое содержимое, внутри программы вы можете использовать как и методы гугла и яндекса, так и переключиться на оффлайн режим.
🧷 https://youtu.be/NRPVObQLi3M
#Видео
• В данном видео реализована программа для распознавания речи python, которая позволяет используя различные методы переводить голос в текстовое содержимое, внутри программы вы можете использовать как и методы гугла и яндекса, так и переключиться на оффлайн режим.
🧷 https://youtu.be/NRPVObQLi3M
#Видео
Telegram Bot PYTHON - Создаем админку с интерфейсом для управления ботами (PyQt5 + PyTelegramBotApi)
• В данном видео мы реализуем админ-панель для управления ботами в телеграме. Админка содержит в себе возможность постить контент на множество каналов используя токен 1-го бота.
• Весь проект реализован на PyQt5 и PyTelegramBotApi, что позволяет использовать графический интерфейс для нашей программы и взаимодействовать с API телеграма.
🧷 https://youtu.be/C4FWuX4ETXw
#Видео
• В данном видео мы реализуем админ-панель для управления ботами в телеграме. Админка содержит в себе возможность постить контент на множество каналов используя токен 1-го бота.
• Весь проект реализован на PyQt5 и PyTelegramBotApi, что позволяет использовать графический интерфейс для нашей программы и взаимодействовать с API телеграма.
🧷 https://youtu.be/C4FWuX4ETXw
#Видео