Request » History » Version 3
Version 2 (Elmer de Looff, 2012-04-23 17:26) → Version 3/23 (Elmer de Looff, 2012-04-27 09:39)
h1. Request
The @Request@ request object is an abstraction of in µWeb makes sure each request from the incoming HTTP request. This allows one simple interface that is browser, independent of coming from a mod_python instance or the underlying [[standalone]] server that µWeb runs on (either [[Standalone]] using BaseHTTPServer, or [[Apache]] mode on @mod_python@). looks the same.
From PageMaker methods, You can reach the request object inside a [[pagemaker]] by using the self.req variable.
It is accessible presented as the @self.req@ member. The request an object contains all with 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
following members:
* env
* headers
h2. 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
<pre>
<code class="html">
argA = self.post.getfirst('argA')
argB = self.post.getfirst('argB', 'empty')
if 'argA' in self.post:
#pass, argA has been send by the browser
</code>
</pre>
h2. Get vars
GET arguments can be found under: self.get, they work the same as POST vars.
h2. Cookies
self.cookies contains the cookies send by the browser, as the interface to create them from the server.
h3. 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.
<pre>
<code class="python">
self.cookies['sample'].value
</code>
</pre>
h2. 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'
h3. 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
The @Request@ request object is an abstraction of in µWeb makes sure each request from the incoming HTTP request. This allows one simple interface that is browser, independent of coming from a mod_python instance or the underlying [[standalone]] server that µWeb runs on (either [[Standalone]] using BaseHTTPServer, or [[Apache]] mode on @mod_python@). looks the same.
From PageMaker methods, You can reach the request object inside a [[pagemaker]] by using the self.req variable.
It is accessible presented as the @self.req@ member. The request an object contains all with 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
following members:
* env
* headers
h2. 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
<pre>
<code class="html">
argA = self.post.getfirst('argA')
argB = self.post.getfirst('argB', 'empty')
if 'argA' in self.post:
#pass, argA has been send by the browser
</code>
</pre>
h2. Get vars
GET arguments can be found under: self.get, they work the same as POST vars.
h2. Cookies
self.cookies contains the cookies send by the browser, as the interface to create them from the server.
h3. 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.
<pre>
<code class="python">
self.cookies['sample'].value
</code>
</pre>
h2. 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'
h3. 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