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)
Copyright (C) 2012-2017 Edgewall Software