# ``twisted`.`web`.`resource`.`IResource``

interface documentation

`class IResource(Interface): (source)`

Known implementations: `twisted.web._auth.wrapper.UnauthorizedResource`, `twisted.web.guard.HTTPAuthSessionWrapper`, `twisted.web.resource.Resource`, `twisted.web.wsgi.WSGIResource`

View In Hierarchy

A web resource.

Method | `getChildWithDefault` | No summary
Method | `putChild` | Put a child IResource implementor at the given path.
Method | `render` | Render a request. This is called on the leaf resource for a request.
Attribute | `isLeaf` | Signal if this IResource implementor is a "leaf node" or not. If True, getChildWithDefault will not be called on this Resource.

def getChildWithDefault(name, request): (source)
Return a child with the given name for the given request. This is the external interface used by the Resource publishing machinery. If implementing IResource without subclassing Resource, it must be provided. However, if subclassing Resource, getChild overridden instead.

Parameters
name:`bytes` | A single path component from a requested URL. For example, a request for http://example.com/foo/bar will result in calls to this method with `b"foo"` and `b"bar"` as values for this argument.
request:`twisted.web.server.Request` | A representation of all of the information about the request that is being made for this child.

def putChild(path, child): (source)
Put a child IResource implementor at the given path.

Parameters
path:`bytes` | A single path component, to be interpreted relative to the path this resource is found at, at which to put the given child. For example, if resource A can be found at http://example.com/foo then a call like `A.putChild(b"bar", B)` will make resource B available at http://example.com/foo/bar.
child | Undocumented

def render(request): (source)
Render a request. This is called on the leaf resource for a request.

Returns
Either `server.NOT_DONE_YET` to indicate an asynchronous or a `bytes` instance to write as the response to the request. If `NOT_DONE_YET` is returned, at some point later (for example, in a Deferred callback) call `request.write(b"<html>")` to write data to the request, and `request.finish()` to send the data to the browser.
Raises
`twisted.web.error.UnsupportedMethod` | If the HTTP verb requested is not supported by this resource.

isLeaf = (source)
Signal if this IResource implementor is a "leaf node" or not. If True, getChildWithDefault will not be called on this Resource.