def __call__(self, environ, start_response):
request = Request(environ)
if request.path.startswith(self.prefix):
method = request.path[len(self.prefix):]
if method == '':
# no trailing /
start_response('302', [('location', self.prefix + '/')])
return ''
try:
funcname = self.urlmap[method]
func = getattr(self, funcname)
except (KeyError, AttributeError):
response = Response(status=404)
else:
response = func(request)
return response(environ, start_response)
else:
return self.app(environ, start_response)
评论列表
文章目录