Mercurial > hg > webob_view
view webob_view/template/+package+/handlers.py @ 1:eb2cb7ebc849
moving to a handler architecture
author | k0s <k0scist@gmail.com> |
---|---|
date | Thu, 29 Oct 2009 15:08:54 -0400 |
parents | |
children | 4dcb932065e4 |
line wrap: on
line source
from cgi import escape from urlparse import urlparse from webob import Response, exc class Handler(object): def __init__(self, request): self.request = request self.application_path = urlparse(request.application_url)[2] def link(self, path=(), permanant=False): if isinstance(path, basestring): path = [ path ] path = [ i.strip('/') for i in path ] if permanant: application_url = [ self.request.application_url ] else: application_url = [ self.application_path ] path = application_url + path return '/'.join(path) def redirect(self, location): raise exc.HTTPSeeOther(location=location) class Get(Handler): @classmethod def match(cls, request): return request.method == 'GET' def __call__(self): name = self.request.GET.get('name', 'world') retval = """<html><body><form method="post">Hello, <input type="text" value="name"/></form></body></html>""" return Response(content_type='text/html', body=retval % name) class Post(Handler): @classmethod def match(cls, request): return request.method == 'POST' def __call__(self): name = 'foo' # XXX get from self.request.POST name = escape(name) self.redirect(self.link('/?name=%s' % name))