diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/wsgi/index.html | 3 | ||||
-rw-r--r-- | examples/wsgi/root.html | 7 | ||||
-rw-r--r-- | examples/wsgi/run_wsgi.py | 31 |
3 files changed, 41 insertions, 0 deletions
diff --git a/examples/wsgi/index.html b/examples/wsgi/index.html new file mode 100644 index 0000000..e38dde4 --- /dev/null +++ b/examples/wsgi/index.html @@ -0,0 +1,3 @@ +<%inherit file="root.html"/> + +This is index.html
\ No newline at end of file diff --git a/examples/wsgi/root.html b/examples/wsgi/root.html new file mode 100644 index 0000000..6b57fc3 --- /dev/null +++ b/examples/wsgi/root.html @@ -0,0 +1,7 @@ +<html> + +<head><title>hi</title></head> +<body> + ${next.body()} +</body> +</html>
\ No newline at end of file diff --git a/examples/wsgi/run_wsgi.py b/examples/wsgi/run_wsgi.py new file mode 100644 index 0000000..029e240 --- /dev/null +++ b/examples/wsgi/run_wsgi.py @@ -0,0 +1,31 @@ +from wsgiutils import wsgiServer +import cgi, sys +from mako.lookup import TemplateLookup +from mako import exceptions + +lookup = TemplateLookup(directories=['./'], filesystem_checks=True) + +def serve(environ, start_response): + fieldstorage = cgi.FieldStorage( + fp = environ['wsgi.input'], + environ = environ, + keep_blank_values = True + ) + d = dict([(k, f[k]) for k in fieldstorage]) + uri = environ.get('PATH_INFO', '/') + + try: + template = lookup.get_template(uri) + start_response("200 OK", [('Content-type','text/html')]) + return [template.render(**d)] + except exceptions.TemplateLookupException: + start_response("404 Not Found", []) + return ["Cant find template '%s'" % uri] + except Exception, e: + start_response("200 OK", [('Content-type','text/html')]) + error_template = exceptions.html_error_template(lookup) + return [error_template.render(error=e)] + +server = wsgiServer.WSGIServer (('localhost', 8000), {'/': serve}) +print "Server listening on port 8000" +server.serve_forever() |