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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

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

 

помощью метода getlist():

 

lst = form.getlist("fld")

 

Список lst будет содержать столько значений,сколько полей с именем fld получено изweb-формы (он может быть и пустым, если ни одно поле с заданным именем не было заполнено).

 

В некоторых случаях необходимо передать на сервер файлы(сделатьupload).Следующий пример и комментарий к нему помогут разобраться с этой задачей:

 

#!/usr/bin/env python


 


import cgi

 

form = cgi.FieldStorage() file_contents = ""

 

if form.has_key("filename"): fileitem = form["filename"] if fileitem.file:

 

file_contents = """<P>Содержимое переданного файла: <PRE>%s</PRE>""" % fileitem.file.read()

 

print """Content-Type: text/html

 

<HTML><HEAD><TITLE>Загрузка файла</TITLE></HEAD> <BODY><H1>Загрузка файла</H1>

 

<P><FORM ENCTYPE="multipart/form-data" ACTION="getfile.cgi" METHOD="POST"> <br>Файл: <INPUT TYPE="file" NAME="filename">

 

<br><INPUT TYPE="submit" NAME="button" VALUE="Передать файл"> </FORM>

 

%s

 

</BODY></HTML>""" % file_contents

 

В начале следует рассмотретьweb-форму,которая приведена в конце сценария:именно она будет выводиться пользователю при обращении поCGI-сценарию.Форма имеет поле типа file,которое вweb-броузере представляется полоской ввода и кнопкой"Browse".

 

Нажимая на кнопку"Browse",пользователь выбирает файл,доступный в ОС на его компьютере.После этого он может нажать кнопку"Передать файл"для передачи файла на сервер.

 

Для отладкиCGI-сценария можно использовать модуль cgitb.При возникновении ошибки этот модуль выдаст красочнуюHTML-страницу с указанием места возбуждения исключения.



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 56; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.156 (0.007 с.)