📌 Модуль python-docx, cсоздание/изменение документов DOCX.
• Он предназначен для создания и обновления файлов с расширением .docx - Microsoft Word. Этот модуль имеет одну зависимость: сторонний модуль lxml.
• Первое, что вам понадобится, это документ, над которым вы будете работать. Самый простой способ(код на картинке).
• При этом создается пустой документ, основанный на "шаблоне" по умолчанию. Другими словами, происходит примерно то же самое, когда пользователь нажимает на иконку в Microsoft Word "Новый документ" с использованием встроенных значений по умолчанию.
📕 Документация
#урок
• Он предназначен для создания и обновления файлов с расширением .docx - Microsoft Word. Этот модуль имеет одну зависимость: сторонний модуль lxml.
• Первое, что вам понадобится, это документ, над которым вы будете работать. Самый простой способ(код на картинке).
• При этом создается пустой документ, основанный на "шаблоне" по умолчанию. Другими словами, происходит примерно то же самое, когда пользователь нажимает на иконку в Microsoft Word "Новый документ" с использованием встроенных значений по умолчанию.
📕 Документация
#урок
👍6❤3
📌 Модуль qrcode в Python, генератор QR кодов.
• QR-код - это двумерный пиктографический код, который стал широко использоваться из-за его быстрой читаемости и сравнительно большой емкости памяти. Код состоит из черных модулей, расположенных в виде квадрата на белом фоне.
• Закодированная информация может состоять из данных любого типа (например, двоичных, буквенно-цифровых символов или символов Кандзи).
Простой пример создания QR-кода на Python, средствами стороннего модуля qrcode (код на картинке).
📕 Документация
#урок
• QR-код - это двумерный пиктографический код, который стал широко использоваться из-за его быстрой читаемости и сравнительно большой емкости памяти. Код состоит из черных модулей, расположенных в виде квадрата на белом фоне.
• Закодированная информация может состоять из данных любого типа (например, двоичных, буквенно-цифровых символов или символов Кандзи).
Простой пример создания QR-кода на Python, средствами стороннего модуля qrcode (код на картинке).
📕 Документация
#урок
❤6🔥2
📌 Модуль python-docx, cсоздание/изменение документов DOCX.
• Он предназначен для создания и обновления файлов с расширением .docx - Microsoft Word. Этот модуль имеет одну зависимость: сторонний модуль lxml.
• Первое, что вам понадобится, это документ, над которым вы будете работать. Самый простой способ(код на картинке).
• При этом создается пустой документ, основанный на "шаблоне" по умолчанию. Другими словами, происходит примерно то же самое, когда пользователь нажимает на иконку в Microsoft Word "Новый документ" с использованием встроенных значений по умолчанию.
📕 Документация
#урок
• Он предназначен для создания и обновления файлов с расширением .docx - Microsoft Word. Этот модуль имеет одну зависимость: сторонний модуль lxml.
• Первое, что вам понадобится, это документ, над которым вы будете работать. Самый простой способ(код на картинке).
• При этом создается пустой документ, основанный на "шаблоне" по умолчанию. Другими словами, происходит примерно то же самое, когда пользователь нажимает на иконку в Microsoft Word "Новый документ" с использованием встроенных значений по умолчанию.
📕 Документация
#урок
❤5👍3
📌 Функция vars() в Python, словарь переменных объекта.
• Функция vars() вернет атрибут dict - словарь пространства имен для модуля, класса, экземпляра или любого другого объекта с атрибутом dict.
• Такие объекты, как модули и экземпляры классов, имеют обновляемый dict атрибут, однако другие объекты могут иметь ограничения для записи своих атрибутов dict, например классы, которые используют types.MappingProxyType для предотвращения прямого обновления словаря.
• Без аргумента vars() действует как встроенная функция locals(). Обратите внимание, что словарь переменных локальной области видимости полезен только для чтения, поскольку обновление словаря локальной области видимости игнорируются интерпретатором.
Пример получения словаря пространства имен, используемых объектом (код на картинке).
📕 Документация
#урок
• Функция vars() вернет атрибут dict - словарь пространства имен для модуля, класса, экземпляра или любого другого объекта с атрибутом dict.
• Такие объекты, как модули и экземпляры классов, имеют обновляемый dict атрибут, однако другие объекты могут иметь ограничения для записи своих атрибутов dict, например классы, которые используют types.MappingProxyType для предотвращения прямого обновления словаря.
• Без аргумента vars() действует как встроенная функция locals(). Обратите внимание, что словарь переменных локальной области видимости полезен только для чтения, поскольку обновление словаря локальной области видимости игнорируются интерпретатором.
Пример получения словаря пространства имен, используемых объектом (код на картинке).
📕 Документация
#урок
👍5❤3
📌 Класс 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
❤6👍3👎1
📌 Фабрика колбэков
Передавать данные в Inline-кнопки как строки — не удобно. Данные тяжело считывается, код тяжело читается.
Для решения проблемы есть класс
Код
#урок #aiogram
Передавать данные в Inline-кнопки как строки — не удобно. Данные тяжело считывается, код тяжело читается.
Для решения проблемы есть класс
CallbackData, с его помощью создаётся класс, который самостоятельно составляет строку и обрабатывает её. Программисту остаётся работать только с объектом. Код
#урок #aiogram
👍6❤3