pecan.core
– Pecan Core¶
The pecan.core
module is the base module for creating and extending
Pecan. The core logic for processing HTTP requests and responses lives
here.
- class pecan.core.Pecan(*args, **kw)¶
Bases:
pecan.core.PecanBase
Pecan application object. Generally created using
pecan.make_app
, rather than being created manually.Creates a Pecan application instance, which is a WSGI application.
- Parameters
root – A string representing a root controller object (e.g., “myapp.controller.root.RootController”)
default_renderer – The default template rendering engine to use. Defaults to mako.
template_path – A relative file system path (from the project root) where template files live. Defaults to ‘templates’.
hooks – A callable which returns a list of
pecan.hooks.PecanHook
custom_renderers – Custom renderer objects, as a dictionary keyed by engine name.
extra_template_vars – Any variables to inject into the template namespace automatically.
force_canonical – A boolean indicating if this project should require canonical URLs.
guess_content_type_from_ext – A boolean indicating if this project should use the extension in the URL for guessing the content type to return.
use_context_locals – When True, pecan.request and pecan.response will be available as thread-local references.
request_cls – Can be used to specify a custom pecan.request object. Defaults to pecan.Request.
response_cls – Can be used to specify a custom pecan.response object. Defaults to pecan.Response.
- find_controller(_state)¶
The main request handler for Pecan applications.
- handle_hooks(hooks, *args, **kw)¶
Processes hooks of the specified type.
- Parameters
hook_type – The type of hook, including
before
,after
,on_error
, andon_route
.*args – Arguments to pass to the hooks.
- class pecan.core.Request(environ, charset=None, unicode_errors=None, decode_param_names=None, **kw)¶
Bases:
webob.request.Request
- class pecan.core.Response(body=None, status=None, headerlist=None, app_iter=None, content_type=None, conditional_response=None, charset=<object object>, **kw)¶
Bases:
webob.response.Response
- pecan.core.abort(status_code, detail='', headers=None, comment=None, **kw)¶
Raise an HTTP status code, as specified. Useful for returning status codes like 401 Unauthorized or 403 Forbidden.
- Parameters
status_code – The HTTP status code as an integer.
detail – The message to send along, as a string.
headers – A dictionary of headers to send along with the response.
comment – A comment to include in the response.
- pecan.core.load_app(config, **kwargs)¶
Used to load a
Pecan
application and its environment based on passed configuration.- Parameters
config – Can be a dictionary containing configuration, a string which represents a (relative) configuration filename
returns a pecan.Pecan object
- pecan.core.override_template(template, content_type=None)¶
Call within a controller to override the template that is used in your response.
- Parameters
template – a valid path to a template file, just as you would specify in an
@expose
.content_type – a valid MIME type to use for the response.func_closure
- pecan.core.redirect(location=None, internal=False, code=None, headers={}, add_slash=False, request=None)¶
Perform a redirect, either internal or external. An internal redirect performs the redirect server-side, while the external redirect utilizes an HTTP 302 status code.
- Parameters
location – The HTTP location to redirect to.
internal – A boolean indicating whether the redirect should be internal.
code – The HTTP status code to use for the redirect. Defaults to 302.
headers – Any HTTP headers to send with the response, as a dictionary.
request – The
pecan.Request
instance to use.
- pecan.core.render(template, namespace, app=None)¶
Render the specified template using the Pecan rendering framework with the specified template namespace as a dictionary. Useful in a controller where you have no template specified in the
@expose
.- Parameters
template – The path to your template, as you would specify in
@expose
.namespace – The namespace to use for rendering the template, as a dictionary.
app – The instance of
pecan.Pecan
to use