Mercurial > genshi > mirror
changeset 267:8165d6e3b703 trunk
Add [WebPy web.py] example app.
author | cmlenz |
---|---|
date | Mon, 25 Sep 2006 13:26:42 +0000 |
parents | 8a13cbab435e |
children | eb0a369ebef6 |
files | examples/webpy/README.txt examples/webpy/hello.html examples/webpy/hello.py |
diffstat | 3 files changed, 47 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/examples/webpy/README.txt @@ -0,0 +1,6 @@ +Sample application that demonstrates the use of Genshi templates in web.py +(http://webpy.org/). + +Try introducing errors (not just XML well-formedness errors, those are boring) +in the template, and you'll see a nice error screen with pretty good +information about the exact error.
new file mode 100644 --- /dev/null +++ b/examples/webpy/hello.html @@ -0,0 +1,13 @@ +<!DOCTYPE html + PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" lang="en" + xmlns:py="http://genshi.edgewall.org/"> + <body> + <h1>web.py with Genshi</h1> + <hr /> + <ul py:if="times"> + <li py:for="i in range(times)">Hello, $name!</li> + </ul> + </body> +</html>
new file mode 100644 --- /dev/null +++ b/examples/webpy/hello.py @@ -0,0 +1,28 @@ +import os +from genshi.template import TemplateLoader +import web + +loader = TemplateLoader([os.path.dirname(os.path.abspath(__file__))], + auto_reload=True) +urls = ('/(.*)', 'hello') + + +class hello(object): + + def GET(self, name): + i = web.input(times=1) + if not name: + name = 'world' + name = name.decode('utf-8') + + tmpl = loader.load('hello.html') + stream = tmpl.generate(name=name, times=int(i.times)) + + web.header('Content-Type', 'text/html; charset=utf-8', unique=True) + for output in stream.serialize('html'): + print output.encode('utf-8') + + +if __name__ == '__main__': + web.internalerror = web.debugerror + web.run(urls)