Skip to content

Instantly share code, notes, and snippets.

@alexandre
Created November 4, 2016 13:34
Show Gist options
  • Save alexandre/d9f6ac1a9279865ad0e574b673d35afd to your computer and use it in GitHub Desktop.
Save alexandre/d9f6ac1a9279865ad0e574b673d35afd to your computer and use it in GitHub Desktop.
from pyramid.exc import HTTPMethodNotAllowed
from pyramid.view import view_config
class BaseView(object):
def __init__(self, request):
self.request = request
def __call__(self):
return getattr(self, request.method.lower())()
@property
def view_name(self):
raise NotImplementedError('Oops')
def get(self):
raise HTTPMethodNotAllowed()
def post(selt):
raise HTTPMethodNotAllowed()
def put(self):
raise HTTPMethodNotAllowed()
def patch(self):
raise HTTPMethodNotAllowed()
def delete(self):
raise HTTPMethodNotAllowed()
def options(self):
raise HTTPMethodNotAllowed()
@view_config(route_name='myview', renderer='json')
class MyView(BaseView):
@property
def view_name(self):
return 'MyView'
def get(self):
return {'foo': 'bar'}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment