morepath.publish – Web publisher¶
Functionality to turn a morepath.Request into a
morepath.Response using Morepath configuration. It looks up a
model instance for the request path and parameters, then looks up a
view for that model object to create the response.
The publish module:
resolves the request into a model object.
resolves the model object and the request into a view.
the view then generates a response.
It all starts at publish().
- morepath.publish.get_view_name(stack)¶
Determine view name from leftover stack of path segments
- Parameters:
stack – a list of path segments left over after consuming the path.
- Returns:
view name string or
Noneif no view name can be determined.
- morepath.publish.publish(request)¶
Handle request and return response.
It uses
resolve_model()to use the information inrequest(path, request method, etc) to resolve to a model object.resolve_response()then creates a view for the request and the object.- Parameters:
request –
morepath.Requestinstance.return –
morepath.Responseinstance.
- morepath.publish.resolve_model(request)¶
Resolve request to a model object.
This takes the path information as a stack of path segments in
morepath.Request.unconsumedand consumes it step by step usingmorepath.TrajectRegistry.consume()to find the model object as declared bymorepath.App.path()directive. It can traverse through mounted applications as indicated by themorepath.App.mount()directive.- Param:
morepath.Requestinstance.- Returns:
model object or
Noneif not found.
- morepath.publish.resolve_response(obj, request)¶
Given model object and request, create response.
This uses
get_view_name()to set up the view name on the request object.If no view name exist it raises
webob.exc.HTTPNotFound.It then uses
morepath.App.get_view()to resolve the view for the model object and the request by doing dynamic dispatch.- Parameters:
obj – model object to get response for.
request –
morepath.Requestinstance.
- Returns:
morepath.Responseinstance