txTemplate is een Python module die voorziet adapters voor een paar populaire template motoren om ze gemakkelijk opvraagbare en bruikbaar binnen Twisted Web te maken.
txTemplate gebruikt zope.interface om een consistente loader en template-interface voor elke template engine te bieden.
Ondersteunde Template Motoren
- Clearsilver
- Genshi
- Jinja2
Aan de slag
Alles wat je echt moet doen om txTemplate gebruiken in twisted is:
- Importeren
- Maak een loader wees op uw template directory
- Laad een sjabloon met zei loader
- Oproep template.render, hechten callbacks naar de gerenderde uitgestelde (indien gewenst) en de terugkeer van de uitgestelde uit en van uw twisted.web.resource.Resource render_ * methoden.
Hier is een voorbeeld code van een Twisted Web bron die txTemplate gebruikt om een mooie Genshi sjabloon om Hello World zeggen in HTML te maken:
import os
van twisted.application import internet
van twisted.internet import reactor
van twisted.web import bron
van twisted.web import server
import txtemplate
TEMPLATE_DIR = os.path.join (os.path.dirname (os.path.abspath (__ file__)),
& Nbsp; "templates")
klasse HelloWorld (resource.Resource):
& Nbsp; def __init __ (zelf):
& Nbsp; resource.Resource .__ init __ (zelf)
& Nbsp; self.loader = txtemplate.GenshiTemplateLoader (TEMPLATE_DIR)
& Nbsp; def getChild (zelf, naam, aanvraag):
& Nbsp; terug zelf
& Nbsp; def render_GET (zelf, aanvraag):
& Nbsp; template_name = "hello.xhtml"
& Nbsp; template = self.loader.load (template_name)
& Nbsp; context = {"groet": "Hallo",
& Nbsp; "greetee": "World"}
& Nbsp; def cb (inhoud):
& Nbsp; request.write (inhoud)
& Nbsp; request.setResponseCode (200)
& Nbsp; request.finish ()
& Nbsp; d = template.render (** context)
& Nbsp; d.addCallback (cb)
& Nbsp; terug server.NOT_DONE_YET
website = server.Site (HelloWorld ())
reactor.listenTCP (8888, ter plaatse)
reactor.run ()
Dit voorbeeld is opgenomen in txtemplate / voorbeelden / txweb.py en de root.xhtml template is in txtemplate/examples/templates/root.xhtml.
Requirements:
- Python
Reacties niet gevonden