annotate webob_view/template/+package+/+package+.py_tmpl @ 0:72cb6dc31e3f

initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
author k0s <k0scist@gmail.com>
date Tue, 27 Oct 2009 15:04:33 -0400
parents
children eb2cb7ebc849
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
1 """
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
2 ${repr(project)}: a view with webob
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
3 """
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
4
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
5 from webob import Request, Response, exc
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
6
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
7 class View(object):
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
8
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
9 ### class level variables
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
10 defaults = {}
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
11
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
12 def __init__(self, **kw):
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
13 for key in self.defaults:
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
14 setattr(self, key, kw.get(key, self.defaults[key]))
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
15 self.response_functions = { 'GET': self.get,
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
16 'POST': self.post,
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
17 }
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
18
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
19 ### methods dealing with HTTP
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
20 def __call__(self, environ, start_response):
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
21 request = Request(environ)
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
22 res = self.make_response(request)
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
23 return res(environ, start_response)
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
24
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
25 def make_response(self, request):
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
26 return self.response_functions.get(request.method, self.error)(request)
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
27
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
28 def get_response(self, text, content_type='text/html'):
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
29 res = Response(content_type=content_type, body=text)
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
30 return res
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
31
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
32 def get(self, request):
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
33 """
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
34 return response to a GET requst
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
35 """
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
36 return self.get_response('Hello, world')
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
37
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
38 def post(self, request):
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
39 """
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
40 return response to a POST request
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
41 """
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
42 return exc.HTTPOk("Ok")
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
43
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
44 def error(self, request):
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
45 """deal with non-supported methods"""
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
46 return exc.HTTPMethodNotAllowed("Only %r operations are allowed" % self.response_functions.keys())
72cb6dc31e3f initial commit of webob_view from https://svn.openplans.org/svn/standalone/templates/webob_view/trunk/
k0s <k0scist@gmail.com>
parents:
diff changeset
47