Архив метки: Python

QR и штрих-коды в Python

QR-коды, метод 1

Код QR (Quick Response) — это двухмерный код, содержащий информацию. Фактически, он может хранить больший объем информации, чем даже штрих-коды. Как правило, это пиксельный блок, черно-белый (черные пиксели на белом фоне). На самом деле QR-коды используются всевозможными организациями и фирмами для хранения большого количества данных о себе для своих клиентов. Итак, допустим, вы проходили мимо компании и хотели узнать о ней больше. Предположим также, что у них был QR-код на рекламном щите или визитной карточке. Как правило, вы отсканируете QR-код и получите доступ к хранящейся в нем информации. Затем мы спрашиваем, как мы можем записать информацию в QR-код? Что ж, это легкая часть; мы можем легко сделать это с помощью Python. В этом разделе мы узнаем, как сгенерировать QR-коды с помощью Python.

Первое, что нужно сделать, это установить qrcode. Также нам необходимо установить подушку для генерации изображения.

pip install qrcode [pil]

 

После того, как мы его установили, мы импортируем его.

import qrcode

 

Затем мы определяем веб-сайт или информацию, которую хотим сохранить в QR-коде.

h_url = """

www.google.com

This is a search engine. Another great search engine is

www.duckduckgo.com """

 

Теперь мы определяем переменную qr как qrcode.QRCode (), которая принимает не более 4 аргументов — версию, исправление ошибок, размер поля и границу. Параметр версии представляет собой размер QR-кода и находится в диапазоне от 1 до 40. Параметр размера блока, в частности, представляет собой размер каждого блока в пикселях. Параметр границы определяет толщину границы. Параметр исправления ошибок определяет контроль ошибок для QR-кода.

qr = qrcode.QRCode(

version=1,

error_correction=qrcode.constants.ERROR_CORRECT_L,

box_size=20,

border=4,

)

 

После создания переменной qr мы добавляем информацию, которую хотим сохранить в ней, с помощью qr.add_data (). Для этого нужен один аргумент — информация, которую нужно добавить в QR-код.

qr.add_data(h_url)

qr.make(fit=True)

 

Затем мы создаем изображение и используем fill_color и back_color, чтобы определить цвета, которые мы хотим сделать для наших пикселей и фона. Однако здесь мы можем изменить цвета на RGB, если захотим.

image = qr.make_image(fill_color="black", back_color="white")

# image = qr.make_image(fill_color=(0,0,225), back_color=(125, 211, 124))

 

Наконец, чтобы сохранить сгенерированный QR-код, мы используем save (), сохраняя его в каталоге python. Лучше всего хранить его как изображение png.

image.save("qrcode.png")

 

Весь код будет выглядеть примерно так:

import qrcode



h_url = """



www.google.com



This is a search engine. Another great search engine is



www.duckduckgo.com """



qr = qrcode.QRCode(

version=1,

error_correction=qrcode.constants.ERROR_CORRECT_L,

box_size=20,

border=4,

)



qr.add_data(h_url)



qr.make(fit=True)



image = qr.make_image(fill_color="black", back_color="white")



image.save("qrcode.png")

QR-коды, метод 2

Есть много модулей для генерации QR-кодов! В этом примере мы будем использовать FoxHustle-QR.

Сначала установите его, используя:

pip install FoxHustle-QR

 

Полный код занимает всего три строки:

import FoxHustle_QR



QRGen = FoxHustle_QR.QRGenerator()

link = QRGen("https://www.duckduckgo.com", qr="colored light")

link.save('qrcode5.png')

 

В этом модуле требуется всего три строки кода вместо 10. Здесь мы использовали метод QRGenerator () для достижения этой цели. Затем мы передаем в QRGen два аргумента — контент, который вы хотите сохранить в QR-коде, и тип qr. Имейте в виду, что этот модуль дает QR-коды, которые иногда трудно декодировать с помощью декодеров QR-кодов.

 

QR-код, метод 3

Еще один генератор QR-кода (среди множества их) — qr-img.

Для начала установим нужный нам модуль:

pip install qr-img

 

Затем мы можем создать QR-код, используя следующий код:

import qr_img

image = "enemy.png"

out_image = "qrcode6.png"

data = "www.duckduckgo.com"

name = "Kalyani" # this can be anything, it’s there just for fun

saved = qr_img.qrpic(name, image, data, out_image)

print(saved)

 

Это генерирует QR-код с изображением в центре (в моем случае «own.png»). Немного необычно, но тем не менее работает. Здесь изображение — это изображение, которое вы хотите разместить в центре QR-кода. Out_image — это расположение и имя выходного изображения или QR-кода. Данные — это данные, которые вы хотите поместить в QR-код. И имя — это любое слово, какое захотите; это просто для удовольствия. Затем используйте метод qrpic () для генерации QR-кода, передав 4 аргумента — имя, изображение, данные и out_image.

QR-код декодер

Как бы здорово ни было создавать QR-коды, которые могут считывать телефонные приложения, было бы здорово создать декодер. Декодер QR-кода используется для чтения информации, содержащейся в QR-коде.

Для начала установим нужный нам модуль:

pip install qr-img

 

Затем мы декодируем с помощью метода qr_decode () и распечатываем его.

import qr_img



image = "qrcode.png"

text = qr_img.qr_decode(image)

print(text)

 

Обратите внимание, что это не работает с QR-кодами, созданными с помощью метода 2.

 

Штрих-коды

Штрих-код — это многострочный объект, который мы все видим практически на всем. Это то, что мы видим на наших пищевых продуктах, на продуктах, купленных в магазинах, и практически на всем, что мы можем купить. Эти штрих-коды, как и QR-коды, хранят информацию. Однако проблема со штрих-кодами заключается в том, что они ограничены примерно 20 буквенно-цифровыми символами. Здесь QR-коды — это решение проблемы. В этом разделе мы узнаем, как создавать штрих-коды с помощью Python.

Во-первых, начнем с установки модуля штрих-кода:

pip install "python-barcode[images]"

 

Этот конкретный модуль предлагает 11 различных типов штрих-кодов: EAN-8, EAN-13, EAN-14, UPC-A, JAN, ISBN-10, ISBN-13, ISSN, Code 39, Code 128 и PZN. В этом примере мы собираемся использовать EAN-13.

Чтобы сгенерировать штрих-код, нам нужно всего три строки кода:

import barcode



ean = barcode.get_barcode_class('ean13')

ean2 = ean('4502264821487')

ean2.save('barcode')

 

Здесь метод save используется для сохранения штрих-кода в изображение, и он принимает единственный аргумент — имя штрих-кода, который вы хотите сохранить. Эти три строки кода создают так называемый файл svg.

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

from barcode.writer import ImageWriter

import barcode



ean = barcode.get_barcode_class('ean13')

ean2 = ean('7581631153487', writer=ImageWriter())

ean2.save('barcode2')

 

И штрих-коды, и QR-коды широко используются для хранения информации о продукте, компании или другом материале. Разница между штрих-кодом и QR-кодом заключается в том, что QR-код может хранить примерно в 350 раз больше информации, чем штрих-код, и поэтому более широко используется в наши дни. В этом руководстве мы узнали, как с помощью Python создавать штрих-коды и QR-коды. Теперь вы можете создавать свои собственные штрих-коды и QR-коды для своих целей!

Удачного кодирования!



2021-10-20T00:02:16
Python

Пример CGI в Python

CGI сокращенно обозначается в Python как Common Gateway Interface, который представляет собой блок тестов для объяснения обмена данными между веб-сервером и сценарием. Программа CGI написана HTTP-сервером, когда пользовательский ввод вводится через HTML. Другими словами, это набор процедур, которые используются для создания динамического взаимодействия между клиентом и серверным приложением. Когда клиент использует какой-либо элемент или отправляет запрос в веб-браузер, этот CGI выполняет конкретный запрос, а результат или выходные данные отправляются обратно на веб-сервер.

 

Концепция CGI

Каждый раз, когда мы используем гиперссылку на наших веб-сайтах и ​​нажимаем на эту гиперссылку для посещения определенного веб-сайта или URL-адреса, браузер взаимодействует с сетью протокола передачи гипертекста (HTTP). Затем веб-сервер использует URL-адрес и выполняет поиск с аналогичным именем файла. Если совпадение найдено, файл отправляется обратно. Если файл не найден во втором случае, отображается сообщение об ошибке, что мы ввели неправильное имя файла.

Веб-браузер используется для получения ответа от веб-сервера и отображения содержимого. Это может настроить сервер HTTP так, что всякий раз, когда мы запрашиваем конкретный файл, этот файл должен быть выполнен вместо отправки его обратно. Независимо от содержимого этого файла выполняется как программа и отправляется обратно в браузер для отображения файла. Для python эти коды объявлены как сценарии Python.

Если вы хотите выполнять сценарии Python в Интернете, вам необходимо изучить, как выполнять python как сценарий CGI.

 

Конфигурация веб-сервера Apache для CGI

Конфигурация сервера необходима для получения наших сценариев CGI. Это будет сделано путем установки каталога в качестве директивы псевдонима сценария. Вы можете использовать другие варианты, загрузив «xamp» в свою систему. «ScriptAlias» используется для отображения между путями «файловой системы» и URL-адресами. Псевдоним сценария использует способ создания целевого каталога, поскольку он содержит только сценарии CGI. Установка каталога в качестве директивы «scriptAlias» важна, поскольку она распознает, что все файлы, существующие в каталоге, являются сценариями CGI. Обычно псевдоним сценария выглядит как ссылка ниже в «HTTP.conf» веб-сервера apache.

 

Запустить CGI из определенного каталога

Чтобы подготовить конкретный каталог для отображения сценария CGI, вам необходимо использовать следующую ссылку.

<Directory /usr/local/apache2/htdocs/dir(any directory)>Options +ExecCGI</Directory>

 

Где ‘dir’ — это каталог по вашему выбору, используя вышеупомянутую конфигурацию, вам необходимо указать следующее, чтобы указать расширения сервера файлов CGI, которые вы хотите запустить.

# AddHandler cgi-script .cgi .pl

 

Эта информация играет важную роль в указании Apache выполнять файлы с расширениями .CGI и .PL как CGI.

 

Веб-сервер IIS для настройки CGI

Мы используем операционную систему Windows 10. Она также похожа на Windows Server 2007 и 2008. Какой бы ни была операционная система, у вас должен быть работающий интерпретатор python в операционной системе Windows.

Для этого перейдите на панель задач. Откройте «панель управления». Теперь щелкните «Программы». Выберите желаемый вариант функции Windows. Откроется небольшое окно с заголовком «Возможности Windows». Перейдите в Интернет «Информационные службы Интернета». Теперь перейдите к функции разработки приложений и перейдите к флажку CGI. Чтобы продолжить, выберите «ОК».

Теперь перейдите к началу, а затем перейдите к окну диспетчера IIS. Здесь перейдите на «Веб-сайт по умолчанию» на левой панели. Щелкните правой кнопкой мыши «веб-сайт по умолчанию», а затем щелкните «Добавить приложение».

Теперь в текстовом поле «Псевдоним» введите имя. то есть «PythonApp». И в «физический путь» добавьте путь, по которому сохранено приложение «Pythonapp». Затем нажмите «ОК», чтобы продолжить.

После настройки веб-сервера для запуска python как CGI мы теперь пытаемся запустить простой код на веб-сервере. Перед началом работы следует соблюдать некоторые моменты.

  • Убедитесь, что код Python не содержит синтаксических ошибок.
  • Убедитесь, что ваш файл имеет права на чтение, запись и выполнение с правами администратора, чтобы его можно было изменять везде, где вы собираетесь запускать этот файл, в Windows, Linux или Unix.

 

Выполнить первый образец файла

Используйте HTML-код для полей ввода.

<form action = "/cgi-bin/hello_get.py" method = "get">



First Name: <input type = "text" name = "Fname">  <br />



<input type = "button" value = "Submit" />



</form>

 

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

Теперь перейдем к коду Python.

# import cgi,cgitb



# cgitb.enable()



# form = cgi.FieldStorage()



# name = form.getvalue('fname')



# print("Имя пользователя является:",name)

 

Теперь давайте объясним вышеописанный код Python. Во-первых, нам нужно импортировать базовые модули для исполнения.

# Import cgi, cgitb.

 

«Cgitb.enable()» поможет вам, когда ничего хорошего не происходит. Или вы обнаружите какую-то ошибку. Но здесь следует упомянуть то, что он не поможет вам, если вы столкнетесь с проблемами EOF или какой-либо синтаксической ошибкой. У него другие цели.

# form = cgi.FieldStorage()

 

Теперь мы использовали текстовые файлы модуля CGI в форме. Имя будет извлечено HTML-формой с использованием:

# form.getvalue(‘fname’)

 

Команда печати используется для отображения текста, который мы ввели в текстовое поле на странице HTML. Эта команда берет данные из функции getvalue (‘fname’). Здесь используется переменная для хранения полученного значения.

 

Преимущества программирования CGI

Есть много полезных аспектов программирования CGI. Некоторые из них упомянуты здесь:

  • Эти программы не зависят от языка.
  • Программы CGI могут работать на любом веб-сервере.
  • Они портативны и могут улучшить динамическую связь между веб-приложениями.

 

Некоторые недостатки также требуют внимания.

  • Эти программы сложно отлаживать, поскольку они слишком сложны.
  • Требуемое время обработки очень долгое.
  • В основном данные не хранятся в кэш-памяти.

 

Заключение

«Пример Python CGI» — это статья о практическом создании соединения между сервером и клиентом. Это делается путем выполнения различных шагов и процедур как на стороне сервера, так и на стороне клиента. Мы использовали простой пример, чтобы напечатать имя на Python, когда оно было введено в браузер. Добавлена ​​дополнительная функция HTML для создания страницы с образцом ввода. Я надеюсь, что наши намерения рассказать вам об использовании CGI сработают.



2021-10-18T19:37:53
OS Windows

Python. Карманный справочник

Python. Карманный справочник

Книга Python. Карманный справочник. Этот краткий справочник по Python карманного типа обновлен с учетом версий 3.4 и 2.7 и очень удобен для наведения быстрых справок в процессе разработки программ на Python. В лаконичной форме здесь представлены все необходимые сведения о типах данных и операторах Python, специальных методах, встроенных функциях и исключениях, наиболее употребительных стандартных библиотечных модулях и других примечательных языковых средствах Python.

Скачать с mail облака

2021-10-13T22:00:41Книги и Курсы

Простой Python. Современный стиль программирования. 2-е изд

Простой Python. Современный стиль программирования. 2-е изд

Книга Простой Python. Современный стиль программирования. 2-е изд. «Простой Python» познакомит вас с одним из самых популярных языков программирования. Книга идеально подойдет как начинающим, так и опытным программистам, желающим добавить Python к списку освоенных языков. Любому программисту нужно знать не только язык, но и его возможности.

Вы начнете с основ Python и его стандартной библиотеки. Узнаете, как находить, загружать, устанавливать и использовать сторонние пакеты. Изучите лучшие практики тестирования, отладки, повторного использования кода и получите полезные советы по разработке. Примеры кода и упражнения помогут в создании приложений для различных целей.

Скачать с mail облака

2021-10-13T21:48:34Книги и Курсы

Основы Python. Научитесь думать как программист

Osnovy_Python_Nauchites_dumat_kak_programmist

Книга: Основы Python. Научитесь думать как программист. Это практическое руководство последовательно раскрывает основы программирования на языке Python. Вы будете продвигаться от самых простых тем к сложным и получите полное представление об одном из самых популярных языков программирования.

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

Скачать с mail облака

2021-10-13T20:43:25Книги и Курсы

Байты в строку в Python

В Python всякий раз, когда мы что-либо сохраняем, он хранит это как байт. Байты не читаются человеком, а строки являются удобочитаемыми формами. Всякий раз, когда мы сохраняем какую-либо строку, она не будет напрямую сохранять ее как строку; он будет закодирован в байты с использованием различных методов, таких как ASCII и UTF-8.

Например , ‘I am a andreyex’.encode(‘ASCII’)

 

В приведенном выше примере мы конвертируем строку в байты, используя метод кодирования ASCII. И когда мы распечатаем его с помощью метода печати python, мы увидим результаты вроде b’I am a andreyex ‘. Здесь мы видим, что строка просто следует за одним символом b. На самом деле мы не можем читать байты, но здесь функция печати python декодирует байты в удобочитаемые формы, чтобы мы могли читать строки.

Но на самом деле, когда мы запускаем эту строку, чтобы увидеть каждый символ строки байтов, она будет напечатана следующим образом:

str1 = 'I am a andreyex'

print(type(str1))

str2 = b'I am a andreyex'

print(type(str2))


 

Мы создали две строки. Одна строка проста. А другая строка — байты. Когда мы печатаем оба типа строк, мы получаем результаты, как показано ниже. Приведенные ниже результаты показывают, что одна строка является байтовым типом, а другая — строковым.

<class 'str'>

<class 'bytes'>

 

Теперь мы напечатаем каждый символ обеих строк, чтобы найти разницу между ними. Сначала мы напечатаем строку (str1) с помощью цикла for, который является обычной строкой.

for a in str1:

print(a)


 

Вывод:

I



a

m



a

a

n

d

r

e

y

e

x

 

Теперь мы собираемся напечатать еще одну строку (str2), которая является байтовым типом.

for a in str2:

print(a)


 

Вывод:

73

32

97

109

32

97

32

97

110

100

114

101

121

101

120

 

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

Итак, теперь мы увидим различные методы, которые могут преобразовывать байты в строки.

 

Метод 1. Использование функции map()

В этом методе мы будем использовать функцию map() для преобразования байтов в строковый формат. Приведенная ниже небольшая программа проясняет концепцию.

byte = [97, 99, 100]



s = ''.join(map(chr, byte))

print(s)


 

Вывод:

acd

 

Строка 1: Мы создали список байтов имени.

Строка 3: Затем мы передали символы элемента в списке в качестве параметра и байт в качестве параметра функции join(), которая объединит все символы после преобразования. Наконец, результат распечатывается.

 

Метод 2 : использование функции decode()

Другой метод — это функция decode(). Функция декодирования работает прямо противоположно функции encode().

# преобразование байтов в строку с помощью decode()



str = b'blogs andreyex'

print(str)

print(type(str))



# теперь преобразование байтов в строку

output = str.decode()



print('nOutput:')

print(output)

print(type(output))


 

Вывод:

b'blogs andreyex'

<class 'bytes'>

Вывод:

blogs andreyex

<class 'str'>

 

Строка 3: Мы создали байтовую строку.

Строки с 4 по 5: эти строки просто печатают информацию о строке, которую мы создали в строке 3.

Строка 8: Теперь мы вызываем функцию декодирования и сохраняем результат под новым именем переменной.

Строки с 11 по 12: эти строки показывают, что теперь наша строка больше не имеет байтового типа и что мы можем подтвердить тип вывода, который является строковым.

 

Способ 3. Использование функции codecs.decode()

В этом методе мы будем использовать функцию codecs.decode(). Эта функция используется для преобразования двоичной строки в нормальную форму. Итак, давайте посмотрим, как на самом деле работает эта функция.

# преобразование байтов в строку с помощью codecs()

import codecs

str = b'blogs andreyex'

print(str)

print(type(str))



# теперь преобразование байтов в строку

output = codecs.decode(str)



print('nOutput:')

print(output)

print(type(output))


 

Вывод:

b'blogs andreyex'

<class 'bytes'>

Вывод:

blogs andreyex

<class 'str'>

 

Строка 2:  Импортируем библиотечные кодеки.

Строка 3: Мы создали байтовую строку.

Строки с 4 по 5: эти строки просто печатают информацию о строке, которую мы создали в строке 3.

Строка 8: Теперь мы вызываем функцию caodecs.decode и сохраняем результат под новым именем переменной.

Строки с 11 по 12: Эти строки показывают, что теперь наша строка больше не имеет байтового типа, и мы можем подтвердить тип вывода, который является строковым.

 

Метод 4 : использование функции str()

Мы также можем преобразовать байты в обычные строки с помощью функции str(). Небольшая программа для понимания этого метода приведена ниже.

if __name__ == '__main__':

str1 = b'blogs andreyex'

print(str)

print(type(str))

# теперь конвертируем байты в строку

output = str(str1, 'utf-8')

print('nOutput:')

print(output)

print(type(output))

 

Вывод:

<class 'str'>

<class 'type'>

Вывод:

blogs andreyex

<class 'str'>

 

Строка 2: мы создали байтовую строку.

Строка 3–4: эти строки просто печатают информацию о строке, которую мы создали в строке 3.

Строка 6: Теперь мы вызываем функцию str () и сохраняем результат под новым именем переменной.

Строки с 7 по 9: Эти строки показывают, что теперь наша строка больше не имеет байтового типа, и мы можем подтвердить тип вывода, который является строковым.

 

Заключение

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

В этом руководстве мы представили все концепции, которые можно использовать для преобразования байтов в строки. Вы можете выбрать в соответствии с требованиями вашей программы.



2021-10-12T12:01:59
Python