Google App Engine

The Request Class

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.

  1. Introduction
  2. Request()
  3. Instance methods:
  4. 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.
cookies
The cookie data from the request, a dictionary-like object.

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.