DevGang
Авторизоваться

Как сгенерировать уникальные пропуски для мероприятий с QR-кодом с помощью Python

Организаторам мероприятий требуются надежные системы управления доступом, чтобы обеспечить безопасный вход для посетителей. Традиционная продажа бумажных билетов сопряжена с такими рисками, как подделка, дублирование и отсутствие контроля доступа после первого использования. Современные решения, такие как цифровые пропуска на основе QR-кода, обеспечивают повышенную безопасность, улучшенную аналитику и больший контроль.

В этой статье представлено пошаговое руководство по использованию Python для создания уникальных пропусков с QR-кодом для мероприятий любого масштаба. В нем описан сквозной процесс - от генерации рандомизированных QR-кодов до их плавной интеграции с пользовательскими дизайнами пропусков – с акцентом на простоту и удобство для начинающих.

Генерация уникальных QR-кодов

Первым шагом является программная генерация QR-кодов со случайными строками данных, чтобы обеспечить уникальность каждого прохода. Мы будем использовать библиотеку qrcode Python:

    import qrcode
    import random

    for i in range(100):
      num = random.randint(0, 9999999999999999999)
      data = f'ticket_no:{str(num)}' 
      qr = qrcode.make(data)
      qr.save(f'./result/myQr{str(i)}.png')

Это создает 100 QR-кодов с номерами билетов от 0 до 999 триллионов, сохраняя каждое изображение QR-кода с последовательным именем файла.

Мы добавляем проверки действительности, чтобы гарантировать отсутствие генерирования повторяющихся кодов:


    import pymongo

    client = MongoClient(MONGO_URL) 
    db = client['<database_name>']

    for i in range(100):
      num = random.randint(0, 9999999999999999999)
      data = f'ticket_no:{str(num)}'

      # Check if QR code exists
      temp = db.tickets.find_one({"qr": data}) 
      if(temp):
        print("Duplicate QR Code")
        continue 

      # Generate and save QR
      qr = qrcode.make(data)
      db.tickets.insert_one({"qr": data, "checkIn": False}) 

Это подключается к базе данных MongoDB, которая проверяет, существует ли случайно сгенерированный код, прежде чем создавать и сохранять данные QR-кода.

Интеграция QR-кодов в дизайн билетов

Большинство билетов требуют интеграции QR-кода в индивидуальный графический дизайн с подробностями мероприятия, элементами брендинга и т.д.

Мы используем библиотеку PIL на Python, чтобы программно объединить визуальный дизайн билета и сгенерировать QR-код в единое изображение билета:

    from PIL import Image

    qr = qrcode.make('<QR_CODE_DATA>')
    qr.save("myQr.png")

    img1 = Image.open("myQr.png")  
    img2 = Image.open("./ticket_design.png")
    # Create canvas matching max width and height 
    new_height = max(img1.height, img2.height)
    new_width = img1.width + img2.width  
    new_image = Image.new('RGB', (new_width, new_height))

    # Paste images side by side
    new_image.paste(img1, (0,0)) 
    new_image.paste(img2, (img1.width, 0))

    new_image.save("final_ticket.png")

Этот скрипт открывает QR-код и фоновый дизайн билета, определяет оптимальные размеры и вставляет оба изображения рядом в конечный файл билета.

Генерация масштабируемого билета

Объединение описанных выше процедур в функции позволяет вам быстро генерировать любое количество уникально закодированных заявок в пакетном режиме, динамически настраивая такие элементы, как дизайн заявки, текст и т.д:

    for i in range(100):

      # Generate QR Code
      qr_data = generate_qr() 

      # Create Ticket
      create_ticket(qr_data, design, text) 

Добавление параметризованных входных данных, проверок достоверности и обработки ошибок обеспечивает дополнительные возможности контроля и автоматизации.

Вывод

Это руководство представляет собой удобное для начинающих введение в использование Python для создания надежных цифровых пропусков на мероприятия. Автоматизация уникальности и интеграция пользовательских дизайнов помогают масштабировать управление безопасным доступом к мероприятиям любого масштаба без ущерба для бренда или пользовательского опыта.

Поскольку от бумажных билетов все чаще отказываются в пользу решений на основе сканируемых QR-кодов, обладание этими навыками в качестве организатора мероприятий может обеспечить надежное будущее и упростить контроль доступа посетителей, одновременно открывая творческие возможности для вовлечения сообщества.

Если вам нравится моя работа и вы хотите помочь мне продолжать публиковать подобный контент, угостите меня чашечкой кофе.

Если вы находите этот пост захватывающим, найдите еще больше интересных постов в блоге Learnhub; мы пишем обо всех технологиях - от облачных вычислений до разработки интерфейсов, кибербезопасности, искусственного интеллекта и блокчейна.

Ресурс

  • Начало работы с Folium
  • 20 основных расширений Python для кода Visual Studio
  • Использование Python для парсинга веб-страниц и извлечения данных
  • Начало работы с Python
  • Создание интерактивных карт с помощью Folium и Python

Источник:

#Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться