1b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craikimport webapp2 2b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik 3b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik 4b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craikclass LazyHandler(webapp2.RequestHandler): 5b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik def get(self, **kwargs): 6b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik self.response.out.write('I am a laaazy view.') 7b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik 8b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik 9b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craikclass CustomMethodHandler(webapp2.RequestHandler): 10b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik def custom_method(self): 11b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik self.response.out.write('I am a custom method.') 12b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik 13b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik 14b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craikdef handle_exception(request, response, exception): 15b2cbf1594f8d6e4ba32d384cf379f62a74ed7654Chris Craik return webapp2.Response(body='Hello, custom response world!') 16