Skip to content

Instantly share code, notes, and snippets.

@reedobrien
Created January 3, 2011 19:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save reedobrien/763833 to your computer and use it in GitHub Desktop.
Save reedobrien/763833 to your computer and use it in GitHub Desktop.
a view mapper fantasy for pyramid
# framework
# from http://paste.ofcode.org/bnQGsYx8FWNGTBbYPS6W4k
class PylonsControllerViewMapper(object):
def __init__(self, **kw):
self.kw = kw
def __call__(self, view):
attr = self.kw['attr']
def wrapper(context, request):
matchdict = request.matchdict.copy()
matchdict.pop('action', None)
inst = view()
meth = getattr(inst, attr)
return meth(**matchdict)
return wrapper
class BaseController(object):
__view_mapper__ = PylonsControllerViewMapper
# user application
from webob import Response
from pyramid.config import Configurator
from paste.httpserver import serve
class MyController(BaseController):
def index(self, id):
return Response(id)
if __name__ == '__main__':
config = Configurator()
config.add_handler('one', '/{id}', MyController, action='index')
config.add_handler('two', '/{action}/{id}', MyController)
serve(config.make_wsgi_app())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment