An instance of the Request class contains information about an incoming web request.
Request
is provided by the
google.appengine.ext.webapp
module.
The Request class inherits from the WebOb Request class. Only some of the features of the WebOb Request class are discussed here. For more information, see the WebOb documentation .
- Introduction
- Request()
- Instance methods:
- Instance variables inherited from WebOb Request:
Introduction
The Request class provided by webapp inherits from the WebOb Request class. webapp adds several new methods for accessing arguments submitted by web forms, and extends several default behaviors.
import datetime from google.appengine.ext import webapp class MyRequestHandler(webapp.RequestHandler): def get(self): self.response.out.write(''' <html> <body> <form method="post"> <p>Name: <input type="text" name="name" /></p> <p>Favorite foods:</p> <select name="favorite_foods" multiple size="4"> <option value="apples">Apples</option> <option value="bananas">Bananas</option> <option value="carrots">Carrots</option> <option value="durians">Durians</option> </select> <p>Birth year: <input type="text" name="birth_year" /></p> <p><input type="submit" /></p> </form> </body> </html> ''') def post(self): name = self.request.get("name") favorite_foods = self.request.get_all("favorite_foods") birth_year = self.request.get_range("birth_year", min_value=1900, max_value=datetime.datetime.utcnow().year, default=1900)
In addition to several new methods described below, the webapp Request class has the following differences from WebOb Request:
- If the character set is not specified in the request's Content-Type header, UTF-8 is assumed.
-
Errors while decoding form arguments to Unicode are ignored. The constructor forces the following parameter to the WebOb Request constructor:
unicode_errors='ignore'
-
Form argument keys are decoded using the same character set as the values. The constructor forces the following parameter to the WebOb Request constructor:
decode_param_names=True
Constructor
The constructor of the Request class is defined as followed:
- class Request ( environ )
-
An incoming request for a webapp application. Typically, the WSGIApplication instantiates a RequestHandler and initializes it with a Request object populated with a WSGI-compliant environment dictionary ( environ ).
Arguments
- environ
- A WSGI-compliant environment dictionary.
Instance Methods
The Request class provides the following methods to instances:
- get ( argument_name , default_value = '' )
-
Returns the value of the query (URL) or POST argument with the given name. If multiple arguments have the same name, the first argument's value is returned. The URL and request body are expected to be in the standard format used by web browsers for form submission.
Arguments
- argument_name
- The name of the argument to get.
- default_value
- The value the method should return if an argument with the given name doesn't exist. The default is the empty string.
- get_all ( argument_name )
-
Returns a list of values of all of the query (URL) or POST arguments with the given name, possibly an empty list.
Arguments
- argument_name
- The name of the arguments to get.
- arguments ()
-
Returns a list of the names of query (URL) or POST data arguments. An argument name only appears once in the list, even if the data contains multiple arguments with the same name.
- get_range ( name , min_value = None , max_value = None , default = 0 )
-
Parses the query (URL) or POST data argument with the given name as an
int
, and returns it. The value is normalized to be within the given range, if any.Arguments
- name
- The name of the argument to get as an integer.
- min_value
- The minimum value of the argument. If the value is less than the minimum, the method returns the minimum.
- max_value
- The maximum value of the argument. If the value is more than the maximum, the method returns the maximum.
- default
- The value to return if no argument exists with the given name.
Instance Variables Inherited From WebOb Request
The following is a partial list of instance variable members inherited from the WebOb Request class. For more information, see the WebOb documentation .
- body
- The request body, as a bytestring.
- body_file
- The request body, as a StringIO instance (a file-like object).
- remote_addr
- The remote user's IP address.
- url
- The full request URL.
- path
- The path of the URL, between the host name and the query parameters.
- query_string
-
The query parameters of the URL, everything after the first
?
. - headers
- The request headers, a dictionary-like object. Keys are case-insensitive.
- The cookie data from the request, a dictionary-like object.