?
Анимация
JavaScript
|
Главная Библионтека 27.1.2 Использование модуля cgi Начните с инструкции import cgi . Никогда не используйте from cgi import * - модуль определяет множество имен для внутреннего использования и для совместимости с предыдущими версиями, появление которых нежелательно в вашем пространстве имен. FieldStorage ([**keyword args]) В этом классе сосредоточена наиболее часто используемая функциональность модуля cgi. При инициализации его без аргументов происходит обработка данных со стандартного потока ввода и/или из переменных окружения в соответствии со стандартом CGI1. Так как при этом поглощаются данные со стандартного ввода, следует создавать только один экземпляр класса FieldStorage за все время работы программы. Конструктор класса воспринимает следующие именованные аргументы (keyword args): Указывает альтернативный файловый (или подобный) объект, из которого будут считываться данные. По умолчанию используется sys.stdin. Этот аргумент игнорируется при использовании метода GET. headers Отображение с информацией о HTTP-заголовках. По умолчанию извлекается из переменных окружения. environ Отображение с информацией о переменных окружения. По умолчанию используется os.environ. keep blank values По умолчанию создаваемый экземпляр класса FieldStorage не содержит записи для полей, значения которых являются пустыми строками; для того, 1 С одним исключением: при использовании метода POST не обрабатываются данные в строке запроса (часть URL после символа ?). # Пустая строка: конец заголовков print # Вторая часть: HTML-документ print "<html>" print "<title>Вывод CGI-программы</title>" print "<body>" print "<h1>Это моя первая CGI-программа</h1>" print "Привет всему миру!" print "</body>" print "</html>" name Имя поля или None. filename Имя файла, указанное клиентом, или None. value Значение поля в виде строки, список значений (если используется несколько полей с одинаковым именем) или None. Если объект соответствует загружаемому файлу, при каждом обращении к этому атрибуту производится чтение всего содержимого файла. file Файловый (или подобный) объект, из которого Вы можете считывать данные, или None, если данные представлены строкой. type Тип содержимого поля (заголовок Content-Type) или None, если тип не указан. type options Словарь параметров, указанных в заголовке Content-Type . disposition Размещение содержимого поля (заголовок Content-Disposition) или None. disposition options Словарь параметров, указанных в заголовке Content-Disposition . headers Отображение, содержащее записи для всех заголовков. чтобы такие значения сохранялись, необходимо при инициализации указать этот аргумент равным истине. strict parsing По умолчанию ошибки, возникающие при обработке данных, молча игнорируются. Если же задан и является истиной аргумент strict parsing, при возникновении ошибок будет генерироваться исключение ValueError. Помимо представления всей формы, экземпляры класса FieldStorage используются для представления полей формы, переданных в виде multipart/form-data . MiniFieldStorage Экземпляры этого класса используются для представления полей формы, переданных в виде application/x-www-form-urlencoded. Экземпляры классов FieldStorage и MiniFieldStorage имеют следующие общие атрибуты данных: Экземпляры класса FieldStorage являются отображениями имен полей к представляющим их объектам и поддерживают основные операции, характерные для отображений, а также методы has key() и keys() . Помимо этого они имеют следующие методы: getvalue( key [, default]) Возвращает строковое значение поля с именем key или default, если нет поля с таким именем. Если форма содержит несколько полей с таким именем, возвращает список их строковых значений. По умолчанию в качестве аргумента default используется None. make file( binary) Этот метод используется реализацией класса для создания временного хранилища данных. По умолчанию используется tempfile.TemporaryFile() . Вы можете переопределить этот метод в производном классе, предоставив альтернативный способ временного хранения данных. В качестве аргумента binary используется строка b, если файл должен быть открыт в двоичном режиме, в противном случае он равен пустой строке. Метод должен возвращать файловый (или подобный) объект, доступный для чтения и записи. Приведем простой пример CGI-программы, который проверяет, чтобы были заполнены поля name и addr : import cgi print """\ Content-Type: text/html <html> <body>""" form = cgi.FieldStorageO if form.has key("name") and form.has key("addr"): print """\ <p>Имя: %s</p> <p>Aдрес: %s</p>""" else: print """\ <h1>0шибка</h1> <p>Введите, пожалуйста, имя и адрес.</p>""" print """\ </body> </html>""" Поля формы, доступные через form[ key] , могут быть представлены экземплярами класса FieldStorage, MiniFieldStorage (в зависимости от способа кодирования) или списком экземпляров, если форма содержит несколько полей с указанным 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 [ 113 ] 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |