示例#1
0
文件: web.py 项目: kzinglzy/zest
    def make_error_response(self, err, request=None):
        """ Create error response from HTTP error.
        """
        handler = self.error_handler.get(err.status)
        status = int(err.status)
        if not handler:
            reason = HTTP_STATUS.get(status)
            if not reason:
                status = 404  # reponse 404 while not reason find.
                reason = HTTP_STATUS[status]
            body = ERROR_TEMPLETE.format(status=status,
                                         reason=reason,
                                         message=err.message if self.debug
                                         else '')
            response = Response(body)
        else:
            if get_param_length(handler) == 1:
                response = handler(request)
            else:
                response = handler()

        return self.make_response(response, status)