twisted.web.resource.Resource.html [plain text]
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>twisted.web.resource.Resource</title>
<link rel="stylesheet" href="epydoc.css" type="text/css"></link>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="twisted.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
<a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted 1.3.0rc1</a>
</p></th></tr></table>
</th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">
<font size="-1"><b class="breadcrumbs">
<a href="twisted.html">Package twisted</a> ::
<a href="twisted.web.html">Package web</a> ::
<a href="twisted.web.resource.html">Module resource</a> ::
Class Resource
</b></font></br>
</td>
<td><table cellpadding="0" cellspacing="0">
<tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a> | <a href="twisted.web.resource.Resource.html" target="_top">no frames</a>]</font></td></tr>
</table></td>
</tr></table>
<!-- =========== START OF CLASS DESCRIPTION =========== -->
<h2 class="class">Class Resource</h2>
<dl><dt><b>Known Subclasses:</b></dt>
<dd>
<a href="twisted.web.vhost._HostResource.html"><code>_HostResource</code></a>,
<a href="twisted.web.static.ASISProcessor.html"><code>ASISProcessor</code></a>,
<a href="twisted.web.woven.controller.BlankPage.html"><code>BlankPage</code></a>,
<a href="twisted.web.twcgi.CGIDirectory.html"><code>CGIDirectory</code></a>,
<a href="twisted.web.twcgi.CGIScript.html"><code>CGIScript</code></a>,
<a href="twisted.web.woven.controller.Controller.html"><code>Controller</code></a>,
<a href="twisted.web.static.Data.html"><code>Data</code></a>,
<a href="twisted.web.util.DeferredResource.html"><code>DeferredResource</code></a>,
<a href="twisted.web.woven.template.DOMController.html"><code>DOMController</code></a>,
<a href="twisted.web.woven.template.DOMTemplate.html"><code>DOMTemplate</code></a>,
<a href="twisted.web.error.ErrorPage.html"><code>ErrorPage</code></a>,
<a href="twisted.web.static.File.html"><code>File</code></a>,
<a href="twisted.web.woven.form.FormProcessor.html"><code>FormProcessor</code></a>,
<a href="twisted.web.widgets.Gadget.html"><code>Gadget</code></a>,
<a href="twisted.web.woven.tapestry.ModelLoader.html"><code>ModelLoader</code></a>,
<a href="twisted.web.vhost.NameVirtualHost.html"><code>NameVirtualHost</code></a>,
<a href="twisted.web.widgets.Page.html"><code>Page</code></a>,
<a href="twisted.web.util.ParentRedirect.html"><code>ParentRedirect</code></a>,
<a href="twisted.web.woven.guard.PerspectiveWrapper.html"><code>PerspectiveWrapper</code></a>,
<a href="twisted.web.script.PythonScript.html"><code>PythonScript</code></a>,
<a href="twisted.web.static.Redirect.html"><code>Redirect</code></a>,
<a href="twisted.web.util.Redirect.html"><code>Redirect</code></a>,
<a href="twisted.flow.web.Resource.html"><code>Resource</code></a>,
<a href="twisted.web.guard.ResourceGuard.html"><code>ResourceGuard</code></a>,
<a href="twisted.web.script.ResourceScriptDirectory.html"><code>ResourceScriptDirectory</code></a>,
<a href="twisted.web.script.ResourceScriptWrapper.html"><code>ResourceScriptWrapper</code></a>,
<a href="twisted.web.distrib.ResourceSubscription.html"><code>ResourceSubscription</code></a>,
<a href="twisted.web.proxy.ReverseProxyResource.html"><code>ReverseProxyResource</code></a>,
<a href="twisted.web.rewrite.RewriterResource.html"><code>RewriterResource</code></a>,
<a href="twisted.web.woven.guard.SessionWrapper.html"><code>SessionWrapper</code></a>,
<a href="twisted.web.soap.SOAPPublisher.html"><code>SOAPPublisher</code></a>,
<a href="twisted.web.woven.tapestry.Tapestry.html"><code>Tapestry</code></a>,
<a href="twisted.web.woven.guard.UsernamePasswordWrapper.html"><code>UsernamePasswordWrapper</code></a>,
<a href="twisted.web.vhost.VHostMonsterResource.html"><code>VHostMonsterResource</code></a>,
<a href="twisted.web.widgets.WidgetResource.html"><code>WidgetResource</code></a>,
<a href="twisted.web.xmlrpc.XMLRPC.html"><code>XMLRPC</code></a></dd></dl>
<hr/>
<p>I define a web-accessible resource.</p>
I serve 2 main purposes; one is to provide a standard representation
for what HTTP specification calls an 'entity', and the other is to
provide an abstract directory structure for URL retrieval.
<hr/>
<!-- =========== START OF METHOD SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Method Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#__init__" class="summary-sig-name"><code>__init__</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Initialize.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="delEntity"></a><span class="summary-sig"><span class="summary-sig-name">delEntity</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>name</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#getChild" class="summary-sig-name"><code>getChild</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>path</span>,
<span class=summary-sig-arg>request</span>)</span></code>
<br />
Retrieve a 'child' resource from me.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="getChildForRequest"></a><span class="summary-sig"><span class="summary-sig-name">getChildForRequest</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>request</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#getChildWithDefault" class="summary-sig-name"><code>getChildWithDefault</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>path</span>,
<span class=summary-sig-arg>request</span>)</span></code>
<br />
Retrieve a static or dynamically generated child resource from me.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="getDynamicEntity"></a><span class="summary-sig"><span class="summary-sig-name">getDynamicEntity</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>name</span>,
<span class=summary-sig-arg>request</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="getStaticEntity"></a><span class="summary-sig"><span class="summary-sig-name">getStaticEntity</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>name</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="listDynamicEntities"></a><span class="summary-sig"><span class="summary-sig-name">listDynamicEntities</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>request</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="listDynamicNames"></a><span class="summary-sig"><span class="summary-sig-name">listDynamicNames</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="listEntities"></a><span class="summary-sig"><span class="summary-sig-name">listEntities</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="listNames"></a><span class="summary-sig"><span class="summary-sig-name">listNames</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="listStaticEntities"></a><span class="summary-sig"><span class="summary-sig-name">listStaticEntities</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="listStaticNames"></a><span class="summary-sig"><span class="summary-sig-name">listStaticNames</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#putChild" class="summary-sig-name"><code>putChild</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>path</span>,
<span class=summary-sig-arg>child</span>)</span></code>
<br />
Register a static child.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="reallyPutEntity"></a><span class="summary-sig"><span class="summary-sig-name">reallyPutEntity</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>name</span>,
<span class=summary-sig-arg>entity</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#render" class="summary-sig-name"><code>render</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>request</span>)</span></code>
<br />
Render a given resource.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.web.resource.Resource.html#render_HEAD" class="summary-sig-name"><code>render_HEAD</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>request</span>)</span></code>
<br />
Default handling of HEAD method.</td></tr>
</table><br />
<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Class Variable Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
<td><b><a href="twisted.web.resource.Resource.html#__implements__"><code>__implements__</code></a></b> = <span title="(<class twisted.web.resource.IResource at 0x8450e44>,)"><code>(<class twisted.web.resource.IResource <span class="variable-ellipsis">...</span></code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>class</code></font></td>
<td><a name="entityType"></a><b><code>entityType</code></b> = <a href="twisted.web.resource.IResource.html"><code>twisted.web.resource.IResource</code></a></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.web.resource.Resource.html#isLeaf"><code>isLeaf</code></a></b> = <span title="0">0 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.web.resource.Resource.html#server"><code>server</code></a></b> = <span title="None">None </span></td></tr>
</table><br />
<!-- =========== START OF METHOD DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Method Details</th></tr>
</table>
<a name="__init__"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">__init__</span>(<span class=sig-arg>self</span>)</span>
<br /><i>(Constructor)</i>
</h3>
Initialize.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="getChild"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">getChild</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>path</span>,
<span class=sig-arg>request</span>)</span>
</h3>
<p>Retrieve a 'child' resource from me.</p>
<p>Implement this to create dynamic resource generation -- resources
which are always available may be registered with self.putChild().</p>
<p>This will not be called if the class-level variable 'isLeaf' is set
in your subclass; instead, the 'postpath' attribute of the request will
be left as a list of the remaining path elements.</p>
For example, the URL /foo/bar/baz will normally be:
<pre class="literalblock">
| site.resource.getChild('foo').getChild('bar').getChild('baz').
</pre>
However, if the resource returned by 'bar' has isLeaf set to true,
then the getChild call will never be made on it.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>path</b></code> -
a string, describing the child
<dd><code><b>request</b></code> -
a twisted.web.server.Request specifying meta-information about
the request that is being made for this child.
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="getChildWithDefault"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">getChildWithDefault</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>path</span>,
<span class=sig-arg>request</span>)</span>
</h3>
<p>Retrieve a static or dynamically generated child resource from
me.</p>
<p>First checks if a resource was added manually by putChild, and then
call getChild to check for dynamic resources. Only override if you want
to affect behaviour of all child lookups, rather than just dynamic
ones.</p>
This will check to see if I have a pre-registered child resource of
the given name, and call getChild if I do not.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="putChild"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">putChild</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>path</span>,
<span class=sig-arg>child</span>)</span>
</h3>
<p>Register a static child.</p>
You almost certainly don't want '/' in your path. If you intended to
have the root of a folder, e.g. /foo/, you want path to be ''.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="render"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">render</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>request</span>)</span>
</h3>
<p>Render a given resource. See <a
href="twisted.web.resource.IResource.html"
class="link"><code>IResource</code></a>'s render method.</p>
<p>I delegate to methods of self with the form 'render_METHOD' where
METHOD is the HTTP that was used to make the request. Examples:
render_GET, render_HEAD, render_POST, and so on. Generally you should
implement those methods instead of overriding this one.</p>
<p>render_METHOD methods are expected to return a string which will be
the rendered page, unless the return value is
twisted.web.server.NOT_DONE_YET, in which case it is this class's
responsibility to write the results to request.write(data), then call
request.finish().</p>
Old code that overrides render() directly is likewise expected to
return a string or NOT_DONE_YET.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="render_HEAD"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">render_HEAD</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>request</span>)</span>
</h3>
<p>Default handling of HEAD method.</p>
I just return self.render_GET(request). When method is HEAD, the
framework will handle this correctly.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<br />
<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Class Variable Details</th></tr>
</table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="__implements__"></a>
<h3>__implements__</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>tuple</code>
</dd>
<span title="(<class twisted.web.resource.IResource at 0x8450e44>,)"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
(<class twisted.web.resource.IResource at 0x8450e44>,) </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="isLeaf"></a>
<h3>isLeaf</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="0"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
0 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="server"></a>
<h3>server</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>NoneType</code>
</dd>
<span title="None"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
None </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<br />
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="twisted.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
<a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted 1.3.0rc1</a>
</p></th></tr></table>
</th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left"><font size="-2">Generated by Epydoc 2.0 on Sat May 15 20:08:31 2004</font></td>
<td align="right"><a href="http://epydoc.sourceforge.net"
><font size="-2">http://epydoc.sf.net</font></a></td>
</tr>
</table>
</body>
</html>