Package cherrypy :: Module _cpwsgi :: Class AppResponse
[hide private]
[frames] | no frames]

Class AppResponse

source code


A WSGI application for CherryPy Application responses.

recursive: if False (the default), each URL (path + qs) will be stored, and, if the same URL is requested again via an InternalRedirect, RuntimeError will be raised. If 'recursive' is True, no such error will be raised.

Instance Methods [hide private]
 
__init__(self, environ, start_response, cpapp, recursive=False)
x.__init__(...) initializes x; see x.__class__.__doc__ for signature
source code
call graph 
 
setapp(self) source code
call graph 
 
iredirect(self, path, query_string)
Doctor self.environ and perform an internal redirect.
source code
 
__iter__(self) source code
 
next(self) source code
 
close(self) source code
 
get_response(self)
Grab a request object from the engine and return its response.
source code
call graph 
 
get_engine_request(self)
Return a Request object from the CherryPy Engine using environ.
source code
call graph 
 
translate_headers(self, environ)
Translate CGI-environ header names to HTTP header names.
source code
call graph 

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__

Class Variables [hide private]
  throws = KeyboardInterrupt, SystemExit
  request = None
  headerNames = {'CONTENT_LENGTH': 'Content-Length', 'CONTENT_TY...
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, environ, start_response, cpapp, recursive=False)
(Constructor)

source code 
call graph 

x.__init__(...) initializes x; see x.__class__.__doc__ for signature

Overrides: object.__init__
(inherited documentation)

iredirect(self, path, query_string)

source code 

Doctor self.environ and perform an internal redirect.

When cherrypy.InternalRedirect is raised, this method is called. It rewrites the WSGI environ using the new path and query_string, and calls a new CherryPy Request object. Because the wsgi.input stream may have already been consumed by the next application, the redirected call will always be of HTTP method "GET"; therefore, any params must be passed in the query_string argument, which is formed from InternalRedirect.query_string when using that exception. If you need something more complicated, make and raise your own exception and write your own AppResponse subclass to trap it. ;)

It would be a bad idea to redirect after you've already yielded response content, although an enterprising soul could choose to abuse this.


Class Variable Details [hide private]

headerNames

Value:
{'CONTENT_LENGTH': 'Content-Length',
 'CONTENT_TYPE': 'Content-Type',
 'HTTP_CGI_AUTHORIZATION': 'Authorization',
 'REMOTE_ADDR': 'Remote-Addr',
 'REMOTE_HOST': 'Remote-Host'}