def error_handler(request, exc): '''Default renderer for errors.''' app = request.app response = request.response if not response.content_type: content_type = request.get('default.content_type') if content_type: response.content_type = request.content_types.best_match( content_type) content_type = None if response.content_type: content_type = response.content_type.split(';')[0] is_html = content_type == 'text/html' if app.debug: msg = render_error_debug(request, exc, is_html) else: msg = error_messages.get(response.status_code) or str(exc) if is_html: msg = app.render_template(['%s.html' % response.status_code, 'error.html'], {'status_code': response.status_code, 'status_message': msg}) # if is_html: doc = request.html_document doc.head.title = response.status doc.body.append(msg) return doc.render(request) elif content_type in JSON_CONTENT_TYPES: return json.dumps({'status': response.status_code, 'message': msg}) else: return '\n'.join(msg) if isinstance(msg, (list, tuple)) else msg
def error_handler(request, exc): '''Default renderer for errors.''' app = request.app response = request.response if not response.content_type: content_type = request.get('default.content_type') if content_type: response.content_type = request.content_types.best_match( content_type) content_type = None if response.content_type: content_type = response.content_type.split(';')[0] is_html = content_type == 'text/html' if app.debug: msg = render_error_debug(request, exc, is_html) else: msg = error_messages.get(response.status_code) or str(exc) if is_html: msg = app.render_template(['%s.html' % response.status_code, 'error.html'], {'status_code': response.status_code, 'status_message': msg}, request=request) # if is_html: doc = request.html_document doc.head.title = response.status doc.body.append(msg) return doc.render(request) elif content_type in JSON_CONTENT_TYPES: return json.dumps({'status': response.status_code, 'message': msg}) else: return '\n'.join(msg) if isinstance(msg, (list, tuple)) else msg
def error_handler(request, exc): """Default renderer for errors.""" app = request.app response = request.response if not response.content_type: content_type = request.get('default.content_type') if content_type: if isinstance(content_type, str): content_type = (content_type, ) response.content_type = request.content_types.best_match( content_type) content_type = None if response.content_type: content_type = response.content_type.split(';')[0] is_html = content_type == 'text/html' msg = (str(exc) or error_messages.get(response.status_code) or response.response) trace = None if response.status_code >= 500: if app.debug: trace = render_error_debug(request, exc, is_html) else: msg = error_messages.get(response.status_code, 'Internal error') if is_html: context = { 'status_code': response.status_code, 'status_message': trace or msg } return app.html_response( request, ['%s.html' % response.status_code, 'error.html'], context, title=response.status) # if content_type in JSON_CONTENT_TYPES: return json.dumps( json_message(request, msg, error=response.status_code, trace=trace)) elif trace: return '\n'.join(trace) else: return msg
def error_handler(request, exc): """Default renderer for errors.""" app = request.app response = request.response if not response.content_type: content_type = request.get('default.content_type') if content_type: if isinstance(content_type, str): content_type = (content_type,) response.content_type = request.content_types.best_match( content_type) content_type = None if response.content_type: content_type = response.content_type.split(';')[0] is_html = content_type == 'text/html' msg = (str(exc) or error_messages.get(response.status_code) or response.response) trace = None if response.status_code >= 500: if app.debug: trace = render_error_debug(request, exc, is_html) else: msg = error_messages.get(response.status_code, 'Internal error') if is_html: context = {'status_code': response.status_code, 'status_message': trace or msg} return app.html_response(request, ['%s.html' % response.status_code, 'error.html'], context, title=response.status) # if content_type in JSON_CONTENT_TYPES: return json.dumps(json_message(request, msg, error=response.status_code, trace=trace)) elif trace: return '\n'.join(trace) else: return msg