cherrypy._cptree

CherryPy Application and Tree objects.

Classes

class cherrypy._cptree.Application(root, script_name='', config=None)

A CherryPy Application.

Servers and gateways should not instantiate Request objects directly. Instead, they should ask an Application object for a request object.

An instance of this class may also be used as a WSGI callable (WSGI application object) for itself.

config = {}

A dict of {path: pathconf} pairs, where ‘pathconf’ is itself a dict of {key: value} pairs.

find_config(path, key, default=None)

Return the most-specific value for key along path, or default.

get_serving(local, remote, scheme, sproto)

Create and return a Request and Response object.

log = None

A LogManager instance. See _cplogging.

merge(config)

Merge the given config into self.config.

release_serving()

Release the current serving (request and response).

request_class

alias of Request

response_class

alias of Response

root = None

The top-most container of page handlers for this app. Handlers should be arranged in a hierarchy of attributes, matching the expected URI hierarchy; the default dispatcher then searches this hierarchy for a matching handler. When using a dispatcher other than the default, this value may be None.

script_name

The URI “mount point” for this app. A mount point is that portion of the URI which is constant for all URIs that are serviced by this application; it does not include scheme, host, or proxy (“virtual host”) portions of the URI.

For example, if script_name is “/my/cool/app”, then the URL “http://www.example.com/my/cool/app/page1” might be handled by a “page1” method on the root object.

The value of script_name MUST NOT end in a slash. If the script_name refers to the root of the URI, it MUST be an empty string (not “/”).

If script_name is explicitly set to None, then the script_name will be provided for each call from request.wsgi_environ[‘SCRIPT_NAME’].

wsgiapp = None

A CPWSGIApp instance. See _cpwsgi.

class cherrypy._cptree.Tree

A registry of CherryPy applications, mounted at diverse points.

An instance of this class may also be used as a WSGI callable (WSGI application object), in which case it dispatches to all mounted apps.

apps = {}

A dict of the form {script name: application}, where “script name” is a string declaring the URI mount point (no trailing slash), and “application” is an instance of cherrypy.Application (or an arbitrary WSGI callable if you happen to be using a WSGI server).

graft(wsgi_callable, script_name='')

Mount a wsgi callable at the given script_name.

mount(root, script_name='', config=None)

Mount a new app from a root object, script_name, and config.

root
An instance of a “controller class” (a collection of page handler methods) which represents the root of the application. This may also be an Application instance, or None if using a dispatcher other than the default.
script_name

A string containing the “mount point” of the application. This should start with a slash, and be the path portion of the URL at which to mount the given root. For example, if root.index() will handle requests to “http://www.example.com:8080/dept/app1/”, then the script_name argument would be “/dept/app1”.

It MUST NOT end in a slash. If the script_name refers to the root of the URI, it MUST be an empty string (not “/”).

config
A file or dict containing application config.
script_name(path=None)

The script_name of the app at the given path, or None.

If path is None, cherrypy.request is used.