кодесурса
«Python

Python CGI Программирование

script1adsense2code
script1adsense3code

Предисловие

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

Настройте веб-сервер Apache для CGI

Чтобы ваш сервер правильно запускал сценарии CGI, вам нужно настроить свой веб-сервер. Мы обсудим, как настроить ваш веб-сервер Apache для запуска CGI-скриптов.

Использование ScriptAlias

Вы можете установить каталог как директиву ScriptAlias (опции для настройки Apache). Таким образом, Apache понимает, что все файлы, находящиеся в этом каталоге, являются CGI-скриптами. Это может быть самый простой способ запуска CGI-скриптов на Apache. Типичная строка ScriptAlias выглядит следующим образом в файле httpd.conf вашего веб-сервера Apache.

ScriptAlias / cgi-bin / / usr / local / apache2 / cgi-bin /

Итак, ищите ScriptAlias в вашем файле httpd.conf и раскомментируйте строку (удалите предыдущий #), если вы хотите сохранить все ваши файлы CGI в каталоге по умолчанию, указанном Apache. Но это не всегда может удовлетворить ваши требования. Итак, мы рассмотрим некоторые другие варианты запуска Python как CGI.

Запуск CGI из определенного каталога, отличного от каталога по умолчанию

Вы можете использовать следующее для подготовки определенного каталога для запуска файлов CGI.

 <Directory / usr / local / apache2 / htdocs / somedir> Параметры + ExecCGI </ Directory>

Где «somedir» - это каталог ваших предпочтений.

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

AddHandler cgi-скрипт .cgi .pl

Итак, вышесказанное говорит Apache запускать файлы с расширениями .cgi и .pl как CGI

Пользовательские каталоги

Если вы хотите запускать CGI-файлы из каталога пользователя, вы можете использовать следующее:

 <Directory / home / * / public_html>
Опции + ExecCGI
AddHandler cgi-скрипт .cgi
</ Directory>

Выше сказано, что Apache запускает все файлы с расширением .cgi, представленные в каталоге пользователя как CGI.

Опять же, если вы хотите запустить все файлы, размещенные в каталоге пользователя, как CGI, то вы можете использовать следующее:

 <Directory / home / * / public_html / cg-bin>
Опции + ExecCGI
SetHandler cgi-скрипт
</ Directory>

Использование .htaccess

Если у вас нет доступа к файлу httpd.conf, вы можете использовать файл .htaccess для запуска сценариев CGI. Чтобы использовать файлы с определенными расширениями в качестве CGI, настройте свой файл .htaccess следующим образом:

 Опции + ExecCGI
AddHandler cgi-скрипт cgi pl

Если вы хотите запустить все файлы, находящиеся в каталоге, как CGI, вы можете использовать следующее:

 Опции + ExecCGI
SetHandler cgi-скрипт

Настройте веб-сервер IIS для CGI

Теперь мы обсудим, как настроить Internet Information Server для запуска CGI-скриптов. Мы использовали Windows 7 для этого учебного пособия, которое вы можете найти похожим при работе с Windows Server 2008 или Windows Server 2008 R2 или Windows Vista. Обратите внимание, что интерпретатор Python должен быть установлен в вашей ОС Windows.

Из панели задач перейдите в «Панель управления». В «Панели управления» нажмите «Программы», затем нажмите «Включить или отключить функции Windows». Может потребоваться некоторое время, чтобы открыть «Функции Windows». В разделе «Функции Windows» в разделе «Информационные службы Интернета» перейдите к «Функции разработки приложений» и установите флажок рядом с CGI. Вы также можете выбрать другие параметры, которые вы хотите настроить вместе с.

«IIS

Нажмите «ОК» и подождите, пока функции не будут установлены. Теперь запустите «inetmgr» в меню «Пуск» и в окне диспетчера IIS перейдите на «Веб-сайт по умолчанию» на левой панели. Щелкните правой кнопкой мыши «Веб-сайт по умолчанию» и нажмите «Добавить приложение».

«IIS

В поле «Псевдоним» укажите имя (например, PythonApp), а в поле «Физический путь:» укажите путь, в котором находится приложение PythonApp. Нажмите «ОК» сейчас.

Теперь вернитесь к «Веб-сайту по умолчанию» в левой панели. Затем в средней панели под заголовком «IIS» дважды щелкните «Отображения обработчика». Выберите «CGI-exe» и напишите клик. Нажмите «Добавить карту сценариев». В пути запроса укажите «* .py», а в «Исполняемом файле» укажите путь установки Python и его параметры (например, «C: /Python27/Python.exe% s% s»). Нажмите «ОК». Теперь вы можете хранить свои файлы Python в указанной папке Pythonapp и запускать их в IIS.

Настройте веб-сервер LIGHTHTTPD для CGI

Конфигурация по умолчанию для запуска CGI на сервере LightHttpd выглядит следующим образом:

 $ HTTP ["url"] = ~ "^ / cgi-bin /" {
    cgi.assign = ("" => "")
}

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

 $ HTTP ["url"] = ~ "^ (/ ~ [^ /] +)? / Cgi-bin /" {
    cgi.assign = ("" => "")
}

Настройте веб-сервер NGINX для CGI

В отличие от других обсуждаемых здесь веб-серверов, NGINX не выполняет внешние программы, такие как CGI напрямую. Но вы можете запустить Python как модуль fcgi или uWSGI.

Запуск вашего первого файла Python как CGI

Теперь вы настроили свой веб-сервер для запуска Python как CGI. попробуйте запустить простой файл Python на вашем веб-сервере. Убедитесь, что вы следуете пунктам ниже, прежде чем сделать это:

1. Используйте редактор, который поддерживает правильное преобразование EOL (Конец строки). Это важно, особенно когда вы создаете файл Python в другой ОС, а затем загружаете или переносите его в другую ОС. Убедитесь, что вы создали файл с преобразованием EOL в качестве целевой ОС. Итак, если вы создаете файл в Windows и позже хотите запустить его в среде Linux, убедитесь, что ваше преобразование EOL имеет формат UNIX / OSX. Notepad ++ - отличный редактор для выбора преобразования EOL, если вы работаете в Windows и позже хотите перенести файлы на компьютер Linux / Unix.

2. При загрузке файла на сервер убедитесь, что вы делаете это в режиме ASCII. Все стандартные FTP-клиенты (например, FileZilla) позволяют передавать файлы в режиме ASCII.

3. Если ваша машина, с которой вы будете запускать файлы, - это Linux / Unix, или если вы работаете с доменной средой на базе Windows Server, убедитесь, что файл имеет права чтения, записи, выполнения для администратора, а также чтения и выполнения для группы и другие.

4. Убедитесь, что в вашем скрипте Python нет синтаксических ошибок.

5. Убедитесь, что вы правильно настроили свой веб-сервер для правильной работы CGI, а также что вы помещаете свои файлы для запуска в качестве CGI в соответствующую директорию.

Вот файл HTML, содержащий простую форму HTML, указывающую на скрипт Python в папке cgi-bin.

<!doctype html>
<html>
<head>
<title>demo web file python3.2</title>
</head>
<body>
<form name="pyform" method="POST" action="/cgi-bin/form.py">
  <input type="text" name="fname" />
  <input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>

Скрипт Python, на который указывает HTML-форма, выглядит следующим образом:

#!/usr/local/bin/python3.2
print("Content-Type: text/html")    
print()                             
 
import cgi,cgitb
cgitb.enable() #for debugging
form = cgi.FieldStorage()
name = form.getvalue('fname')
print("Name of the user is:",name)

Объяснение вашего первого файла CGI

Первая строка указывает местоположение вашей установки Python. Затем во второй и третьей строке печатаются тип содержимого и пустая строка. Затем импортируются модули cgi и cgitb. cgitb.enable () помогает вам, когда что-то идет не так. Но обратите внимание, что это не поможет вам, если у вас есть права или проблемы с преобразованием файлов EOL, а иногда даже если у вас есть синтаксические ошибки в ваших файлах python. Мы обсудим это подробно позже. На данный момент, это сделает работу.

Затем мы сохранили класс FieldStoage модуля cgi в переменной формы. Теперь форма может вести себя как словарь. Итак, мы извлекаем имя, предоставленное пользователем в форме HTML, используя form.getvalue ('fname'). Где fname - имя поля ввода в форме HTML.

И теперь мы печатаем имя, предоставленное пользователем, используя print (). Обратите внимание, что строка 'name of user is' заключена в двойную кавычку, ',' используется для конкатенации, а name - это переменная, которая хранится вне любой кавычки.

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

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

Предыдущий: Python IDLE
Далее: Синтаксис Python

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code