drf APIviews自定义异常处理

mac2022-06-30  22

drf APIviews自定义异常处理

正常情况下APIview中的dispatch会帮我们处理部分异常,并返回response 其他没有处理的异常就会报错,当我们不希望服务器返回错误页面时,就需要我们自己自定义异常处理 from rest_framework.response import Response from rest_framework.views import exception_handler as drf_exception_handler # drf提供的处理异常方法 from rest_framework import status #自定义的异常处理方法 def exception_handler(exc, context): exception = exc view = context.get('view') args = context.get('args') kwargs = context.get('kwargs') request = context.get('request') response = drf_exception_handler(exc, context) # drf没有提供处理的服务器异常 if response is None: # 重点:有些异常信息需要记录日志文件 # logging记录异常信息 return Response('服务器错误', status=status.HTTP_500_INTERNAL_SERVER_ERROR) response.data = { 'status': 1, 'msg': response.data['detail'] } return response # 在全局配置文件中更改处理异常的方法 REST_FRAMEWORK = { # 异常句柄配置 'EXCEPTION_HANDLER': 'api.exceptions.exception_handler', }

转载于:https://www.cnblogs.com/zhouze/p/11385307.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)