apachelounge.com - сайт для загрузки веб-сервера Apache

Папку Apache24 из скаченного архива нужно поместить на диск C.

Если диска С нет, то в файле httpd.conf нужно поменять строчку:

Define SRVROOT "c:/Apache24"

например на такую:

Define SRVROOT "E:/Apache24"

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

Передача данных с веб-страницы на веб-сервер с помощью метода GET с добавлением к URL пар ключ:значение достаточна проста, но при этом имеет некоторые ограничения — длина строки запроса не может превышать 1024 символа, а передаваемые значения отображаются в адресной строке браузера. Существует альтернативный и более надежный способ, при помощи которого браузер может отправлять данные в программу без добавления какой-либо информации к URL-адресу — это использование метода POST, который пересылает информацию на веб-сервер в виде отдельного сообщения.

Для того чтобы передать с веб-страницы на веб-сервер большое количество текстовых данных, введенных пользователем, в дополнение к формам и методу POST применяется HTML-элемент textarea. Данный элемент не имеет атрибута value, следовательно, значение по умолчанию для него не может быть определено. По этой причине в программу на Python полезно добавлять проверку, является ли текстовая область пустой, и задавать значение для нее по умолчанию в случае, когда пользователь не ввел туда ни одного символа.

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

<!-- get.html -->
<!DOCTYPE HTML>
<html lang="ru">
<head> <meta charset="UTF-8">
<title>Пример с радиокнопками</title> </head>
<body>
<form method="POST" action="cgi-bin/1.py">
<fieldset>
<legend>Языки программирования</legend>
PHP<input type="radio" name="cat" value="PHP" checked>
Java<input type="radio" name="cat" value="Java">
Python<input type="radio" name="cat" value="Python">
<input type="submit" value="Отправить">
</fieldset>
</form>
</body>
</html>

#!C:\Users\1\AppData\Local\Programs\Python\Python35-32\python.exe
#1.py
import cgi
data = cgi.FieldStorage()
answer = data.getvalue('cat')
print('Content-type:text/html\r\n\r\n')
print('<!DOCTYPE HTML>')
print('<html lang="ru">')
print('<head>')
print('<meta charset="UTF-8">')
print('<title>Результат работы Python-скрипта</title>')
print('</head>')
print('<body>')
print('<h1>', answer, '</h1>')
print('<a href="/get.html">Вернуться</a>')
print('</body>')
print('</html>')
<!-- get.html -->
<!DOCTYPE HTML>
<html lang="ru">
<head> <meta charset="UTF-8">
<title>Пример с выпадающим списком</title> </head>
<body>
<form method="POST" action="cgi-bin/1.py">
<select name="CityList">
<option value="Нью-Йорк">Нью-Йорк</option>
<option value="Лондон">Лондон</option>
<option value="Париж">Париж</option>
<option value="Пекин">Пекин</option>
</select>
<input type="submit" value="Отправить">
</form>
</body>
</html>

#!C:\Users\1\AppData\Local\Programs\Python\Python35-32\python.exe

#1.py
import cgi
data = cgi.FieldStorage()

city = data.getvalue('CityList')  

print('Content-type:text/html\r\n\r\n')
print('<!DOCTYPE HTML>')
print('<html lang="ru">')
print('<head> <meta charset="UTF-8">')
print('<title>Результат работы Python-скрипта</title></head>')
print('<body>')
print('<h1>Город:', city, '</h1>')
print('<a href="/get.html">Вернуться</a>')
print('</body>')
print('</html>')

HTML-формы предоставляют средство для выбора файла, которое вызывает стандартное Windows-диалоговое окно, позволяющее пользователю выбрать файл, просматривая каталоги локальной файловой системы. Для того чтобы задействовать данное средство, в HTML-элемент form нужно включить атрибут enctype и указать тип кодировки multipart/form-data.