Архив метки: 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

Python: быстрый старт

Python: быстрый старт

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

Все когда-то были новичками. Мы об этом часто забываем, но появляются новые поколения, которые хотят как можно быстрее и с минимум усилий освоить «незнакомый язык»

Не судите новичков строго, если вы гуру программирования, вам эта книга не нужна, но возможно она пригодится вашему ребенку, брату, сестре, другу или подруге 😉

Серия «Быстрый старт» — отличное решение, и вот почему: сложные понятия разбиты на простые шаги — вы сможете освоить язык Python, даже если никогда раньше не занимались программированием; все фундаментальные концепции подкреплены реальными примерами; вы получите полное представление о Python: структуры управления, методы обработки ошибок, концепции объектно-ориентированного программирования и т. д.; в конце книги вас ждет интересный проект, который поможет усвоить полученные знания.

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

2021-10-11T16:26:36Книги и Курсы