annotate examples/webpy/hello.py @ 696:66eead58c120 trunk

More flexible template loader allowing for loading from package data and dispatching to different template directories based on path prefix. Can be easily extended for using custom template loading. Closes #182.
author cmlenz
date Wed, 26 Mar 2008 22:49:23 +0000
parents e72bd8515dd2
children
rev   line source
267
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
1 import os
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
2 from genshi.template import TemplateLoader
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
3 import web
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
4
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
5 loader = TemplateLoader([os.path.dirname(os.path.abspath(__file__))],
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
6 auto_reload=True)
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
7 urls = ('/(.*)', 'hello')
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
8
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
9
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
10 class hello(object):
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
11
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
12 def GET(self, name):
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
13 i = web.input(times=1)
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
14 if not name:
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
15 name = 'world'
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
16 name = name.decode('utf-8')
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
17
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
18 tmpl = loader.load('hello.html')
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
19 stream = tmpl.generate(name=name, times=int(i.times))
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
20
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
21 web.header('Content-Type', 'text/html; charset=utf-8', unique=True)
271
370fa02591a8 Still too much whitespace in the [WebPy web.py] example. Switch to printing the whole output at once.
cmlenz
parents: 270
diff changeset
22 print stream.render('html')
267
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
23
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
24
8165d6e3b703 Add [WebPy web.py] example app.
cmlenz
parents:
diff changeset
25 if __name__ == '__main__':
385
e72bd8515dd2 Updated WebPy example for 0.2.
cmlenz
parents: 271
diff changeset
26 web.webapi.internalerror = web.debugerror
e72bd8515dd2 Updated WebPy example for 0.2.
cmlenz
parents: 271
diff changeset
27 web.run(urls, globals())
Copyright (C) 2012-2017 Edgewall Software