QR-коды — это мощный инструмент для быстрого кодирования данных (ссылок, JSON- payloads, аутентификационных токенов) прямо в своих сервисах и микросервисах
▶️ Python позволяет генерировать QR-код за несколько строк, с полной кастомизацией
Для работы нам потребуется две библиотеки: qrcode для логики кодирования и Pillow (PIL) для манипуляций с изображением и сохранением.
pip install qrcode pillow
Представленный ниже код использует параметры класса qrcode.QRCode, что критично для контроля качества и размера в продакшене 👇
import qrcode
from PIL import Image
# 1. Сбор данных (имитация входного payload)
# В реальном приложении это может быть URL, JSON-токен или ключ
data = input("Введите данные для кодирования (URL/Token): ")
# 2. Инициализация QR-объекта с контролем параметров
# version=3: Уровень сложности (влияет на объем данных)
# box_size=8: Количество пикселей в одном "квадрате" (модуле) QR-кода
# border=4: Ширина белой рамки (критично для сканеров!)
qr = qrcode.QRCode(version=3, box_size=8, border=4)
# Добавляем данные и подгоняем размер (fit=True)
qr.add_data(data)
qr.make(fit=True)
# 3. Визуализация и кастомизация
# Использование нестандартных цветов для брендинга или тестирования
image = qr.make_image(fill="black", back_color="aqua")
# 4. Сохранение и отображение результата
# В backend-приложении вы могли бы вернуть этот image-объект как бинарные данные
file_name = "custom_qr_code.png"
image.save(file_name)
print(f"✅ QR-код успешно сгенерирован: {file_name}")
# Image.open(file_name) # Откроет файл для проверки
Этот функционал легко интегрируется в:
🟡 API (FastAPI/Django): Для динамической генерации QR-кодов (например, для двухфакторной аутентификации или билетов)
🟡 Брендинг: Изменение цвета (fill и back_color) и размеров (box_size) для соответствия дизайну проекта
Пишите в комментариях – используете ли вы QR-коды в своих текущих проектах или хотели бы использовать такую штуку для себя? 🙂
🚀 Пост Guru Python: @sergey_filichkin_blog