module documentation
HTML rendering for twisted.web.
| Class | CDATA |
A <![CDATA[]]> block from a template. Given a separate representation in the DOM so that they may be round-tripped through rendering without losing information. |
| Class | |
A numeric character reference. Given a separate representation in the DOM so that non-ASCII characters may be output as pure ASCII. |
| Class | |
A <!-- --> comment from a template. Given a separate representation in the DOM so that they may be round-tripped through rendering without losing information. |
| Class | |
Base for classes which can render part of a page. |
| Class | slot |
Marker for markup insertion in a template. |
| Class | |
A Tag represents an XML tags with a tag name, attributes, and children. A Tag can be constructed using the special twisted.web.template.tags object, or it may be constructed directly with a tag name. Tag... |
| Class | |
An ITemplateLoader that loads an existing flattenable object. |
| Class | |
An ITemplateLoader that loads and parses XML from a file. |
| Class | |
An ITemplateLoader that loads and parses XML from a string. |
| Function | flatten |
Incrementally write out a string representation of root using write. |
| Function | flatten |
Collate a string representation of root into a single string. |
| Function | render |
Render an element or other IRenderable. |
| Function | renderer |
Decorate with renderer to use methods as template render directives. |
| Constant | TEMPLATE |
Undocumented |
| Constant | VALID |
Undocumented |
| Type Alias | |
Type alias containing all types that can be flattened by flatten(). |
| Variable | tags |
Undocumented |
def flatten(request:
Optional[ IRequest], root: Flattenable, write: Callable[ [ bytes], object]) -> Deferred[ None]:
(source)
¶
Incrementally write out a string representation of root using write.
In order to create a string representation, root will be decomposed into simpler objects which will themselves be decomposed and so on until strings or objects which can easily be converted to strings are encountered.
| Parameters | |
request:Optional[ | A request object which will be passed to the render method of any IRenderable provider which is encountered. |
root:Flattenable | An object to be made flatter. This may be of type str, bytes, slot, Tag, tuple, list, types.GeneratorType, Deferred, or something that provides IRenderable. |
write:Callable[ | A callable which will be invoked with each bytes produced by flattening root. |
| Returns | |
Deferred[ | A Deferred which will be called back with None when root has been completely flattened into write or which will be errbacked if an unexpected exception occurs. |
Collate a string representation of root into a single string.
This is basically gluing flatten to an io.BytesIO and returning the results. See flatten for the exact meanings of request and root.
| Returns | |
Deferred[ | A Deferred which will be called back with a single UTF-8 encoded string as its result when root has been completely flattened or which will be errbacked if an unexpected exception occurs. |
def renderElement(request:
IRequest, element: IRenderable, doctype: Optional[ bytes] = b'<!DOCTYPE html>', _failElement: Optional[ Callable[ [ Failure], Element]] = None) -> object:
(source)
¶
Render an element or other IRenderable.
| Parameters | |
request:IRequest | The IRequest being rendered to. |
element:IRenderable | An IRenderable which will be rendered. |
doctype:Optional[ | A bytes which will be written as the first line of the request, or None to disable writing of a doctype. The argument should not include a trailing newline and will default to the HTML5 doctype '<!DOCTYPE html>'. |
_failOptional[ | Undocumented |
| Returns | |
object | NOT_DONE_YET |
| Present Since | |
| 12.1 | |
Decorate with renderer to use methods as template render directives.
For example:
class Foo(Element):
@renderer
def twiddle(self, request, tag):
return tag('Hello, world.')
<div xmlns:t="http://twistedmatrix.com/ns/twisted.web.template/0.1">
<span t:render="twiddle" />
</div>
Will result in this final output:
<div>
<span>Hello, world.</span>
</div>