Project

General

Profile

Request » History » Version 3

« Previous - Version 3/23 (diff) - Next » - Current version
Elmer de Looff, 2012-04-27 09:39


Request

The Request object is an abstraction of the incoming HTTP request. This allows one simple interface that is independent of the underlying server that µWeb runs on (either Standalone using BaseHTTPServer, or Apache mode on mod_python).

From PageMaker methods, the request object is accessible as the self.req member. The request object contains all the information about the incoming request: query arguments, post data, cookies and environment data. It is also the place where you define outgoing cookies and

  • env
  • headers

Post vars

POST arguments can be found under: self.post and should be accessed by issueing a 'getfirst()', or 'getlist()' call for the desired key.
self.post.getfirst() allows for a second argument to set a default if the desired key isn't set by the browser

argA = self.post.getfirst('argA')
argB = self.post.getfirst('argB', 'empty')

if 'argA' in self.post:
  #pass, argA has been send by the browser


Get vars

GET arguments can be found under: self.get, they work the same as POST vars.

Cookies

self.cookies contains the cookies send by the browser, as the interface to create them from the server.

Retrieving a cookie
You can fetch the content of cookie by accessig the self.cookie dict with the name of the desired cookie as its key.
The returned cookie object has a value member containing the actual value of the requested cookie.
self.cookies['sample'].value

ENV

The env variable is a dictionary containing the following items;
  • CONTENT_TYPE
  • CONTENT_LENGTH
  • HTTP_COOKIE
  • HTTP_HOST
  • HTTP_REFERER
  • HTTP_USER_AGENT
  • PATH_INFO
  • QUERY_STRING
  • REMOTE_ADDR
  • REQUEST_METHOD
  • UWEB_MODE 'STANDALONE' / 'MOD_PYTHON'

Extended env
If more detail is required about the environment, you can issue a call to the self.req.ExtendedEnvironment() method, which will inject more details into the env var. This is a much slower operation than the normal env call, so that's why its tucked away in a separate method.

  • AUTH_TYPE
  • CONNECTION_ID
  • DOCUMENT_ROOT
  • RAW_REQUEST
  • REMOTE_HOST
  • REMOTE_USER
  • SERVER_NAME
  • SERVER_PORT
  • SERVER_LOCAL_NAME
  • SERVER_LOCAL_IP
  • SERVER_PROTOCOL
And in case of a mod_python setup you will also get:
  • MODPYTHON_HANDLER
  • MODPYTHON_INTERPRETER
  • MODPYTHON_PHASE