• Официальный сайт SDK
  • Сайт с примерами кода

Класс Request

Экземпляр класса Request содержит информацию о входящем запросе к приложению.

Класс Request реализован в модуле google.appengine.ext.webapp.

Класс Request является потомком класса Request библиотеки WebOb. В данном разделе обсуждаются только некоторые возможности этого класса. Для дополнительной информации вы можете обратиться к документации по библиотеке WebOb.

Введение

Класс Request фреймворка webapp является наследником одноименного класса библиотеки WebOb. Фреймворк добавляет к реализации несколько новых методов для получения доступа к полям страничных форм и содержит другие улучшения.

CmNsYXNzIE15UmVxdWVzdEhhbmRsZXIod2ViYXBwLlJlcXVlc3RIYW5kbGVyKToKZGVmIGdldChzZWxmKToKc2VsZi5yZXNwb25zZS5vdXQud3JpdGUoJycnCiZsdDtodG1sJmd0OwombHQ7Ym9keSZndDsKJmx0O2Zvcm0gYWN0aW9uPSJwb3N0IiZndDsKJmx0O3AmZ3Q7TmFtZTogJmx0O2lucHV0IHR5cGU9InRleHQiIG5hbWU9Im5hbWUiIC8mZ3Q7Jmx0Oy9wJmd0OwombHQ7cCZndDtGYXZvcml0ZSBmb29kczombHQ7L3AmZ3Q7CiZsdDtzZWxlY3QgbXVsdGlwbGUgc2l6ZT0iNCImZ3Q7CiZsdDtvcHRpb24gdmFsdWU9ImFwcGxlcyImZ3Q7QXBwbGVzJmx0Oy9vcHRpb24mZ3Q7CiZsdDtvcHRpb24gdmFsdWU9ImJhbmFuYXMiJmd0O0JhbmFuYXMmbHQ7L29wdGlvbiZndDsKJmx0O29wdGlvbiB2YWx1ZT0iY2Fycm90cyImZ3Q7Q2Fycm90cyZsdDsvb3B0aW9uJmd0OwombHQ7b3B0aW9uIHZhbHVlPSJkdXJpYW5zIiZndDtEdXJpYW5zJmx0Oy9vcHRpb24mZ3Q7CiZsdDsvc2VsZWN0Jmd0OwombHQ7cCZndDtCaXJ0aCB5ZWFyOiAmbHQ7aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iYmlydGhfeWVhciIgLyZndDsmbHQ7L3AmZ3Q7CiZsdDsvZm9ybSZndDsKJmx0Oy9ib2R5Jmd0OwombHQ7L2h0bWwmZ3Q7CicnJykKZGVmIHBvc3Qoc2VsZik6Cm5hbWUgPSBzZWxmLnJlcXVlc3QuZ2V0KCJuYW1lIikKZmF2b3JpdGVfZm9vZHMgPSBzZWxmLnJlcXVlc3QuZ2V0X2FsbCgiZmF2b3JpdGVfZm9vZHMiKQpiaXJ0aF95ZWFyID0gc2VsZi5yZXF1ZXN0LmdldF9yYW5nZSgiYmlydGhfeWVhciIsCm1pbl92YWx1ZT0xOTAwLAptYXhfdmFsdWU9ZGF0ZXRpbWUuZGF0ZXRpbWUudXRjbm93KCkueWVhciwKZGVmYXVsdF92YWx1ZT0xOTAwKQo==

В дополнении к нижеописанным методам, класс Request имеет следующие отличия от своего родителя из библиотеки WebOb:

  • Если не задан заголовок Content-Type, подразумевается использование кодировки UTF-8.
  • Все ошибки при преобразовании полей форм в юникодное представление игнорируются. В конструкторе жестко задан параметр родительского класса unicode_errors='ignore'
  • Название самих полей форм декодируются с использованием той же кодировки, что и их значений. В конструкторе жестко задан параметр: decode_param_names=True

Конструктор

Конструктор класса Request определен следующим образом:

class Request(environ)

Представляет собой данные входящего запроса приложения на фреймворке webapp. Обычно объект приложения WSGIApplication порождает экземпляры классов RequestHandler и инициализирует их соответствующий объект Request данными запроса при помощи помещения их в словарь (environ).

Параметры:

environ
WSGI-совместимый словарь переменных окружения.

Методы экземпляра

Класс Request имеет следующие методы экземпляров:

get(argument_name, default_value='')

Возвращает значение заданного параметра в адресной строке (URL) или в данных запроса типа POST. Если получено несколько параметров с одинаковым именем, возвращается значение первого. Параметры запроса ожидаются в стандартном формате, который используют браузеры для отправки форм.

Параметры:

argument_name
Имя параметра, значение которого необходимо извлечь.
default_value
Значение, которое возвращает метод, если заданный параметр не существует. По умолчанию является пустой строкой.
get_all(argument_name)

Возвращает список всех значений заданного параметра в адресной строке (URL) или данных запроса типа POST. Список может быть пустым.

Параметры:

argument_name
Имя параметра, список значений которого необходимо извлечь.
arguments()

Возвращает список имен параметров в адресной строке (URL) или данных запроса типа POST. Каждый из параметров указывается в списке только один раз, несмотря даже на то, что он может повторяться в исходных данных.

get_range(name, min_value=None, max_value=None, default=0)

Пытается извлечь значение заданного параметра в адресной строке (URL) или данных запроса типа POST и сконвертировать его в целочисленный тип int. Значение приводится к заданному диапазону.

Параметры:

name
Имя параметра, значение которого необходимо извлечь в качестве числового значения.
min_value
Минимальное значение параметра. Если полученное значение меньше заданного, то метод возвращает этот минимум.
max_value
Максимальное значение параметра. Аналогично, если полученное значение больше заданного, то метод возвращает этот максимум.
default
Значение, которое возвращает метод, если у параметра не задано значение.

Переменные экземпляра, унаследованные от класса Request WebOb

Следующий неполный список содержит переменные, унаследованные от базового класса Request библиотеки WebOb. Для дополнительной информации вы можете обратиться к документации по библиотеке WebOb.

body
Тело запроса в формате байтовой строки.
body_file
Тело запроса в формате экземпляра класса StringIO (файловый объект).
remote_addr
IP адрес удаленного пользователя.
url
Полный URL запроса.
path
Часть строки URL, состоящая из данных между именем сервера и параметрами запроса.
query_string
Параметры запроса, все что следует после первого знака ?.
headers
Заголовки запроса как словарь данных. Ключи словаря нечувствительны к регистру символов.
cookies
Данные cookie запроса, также являются словарным объектом.