1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
   | 
 
    {code:999,msg:服务器异常,请联系系统管理员}   {code:100,msg:成功,data:[{},{}]}      
 
             from rest_framework.views import exception_handler     from rest_framework.response import Response   def common_exception_handler(exc, context):                     res = exception_handler(exc, context)       if res:                                   res = Response(data={'code': 998, 'msg': res.data.get('detail', '服务器异常,请联系系统管理员')})       else:                                 res = Response(data={'code': 999, 'msg': str(exc)})
                      request = context.get('request')         view = context.get('view')         print('错误原因:%s,错误视图类:%s,请求地址:%s,请求方式:%s' % (str(exc), str(view), request.path, request.method))       return res         第二步:把函数配置在配置文件中     REST_FRAMEWORK = {     'EXCEPTION_HANDLER': 'app01.exception.common_exception_handler'      }
      
  from rest_framework.response import  Response def my_exception_handler(exc, context):     response=exception_handler(exc, context)     print(response)     print(exc)     print(context.get('view'))     print(context.get('request').get_full_path())     if not response:          if isinstance(exc,IndexError):             response=Response({'status':5001,'msg':'越界异常'})         elif isinstance(exc,ZeroDivisionError):             response = Response({'status': 5002, 'msg': '越界异常'})         else:             response= Response({'status': 5000, 'msg': '没有权限'})          return response   
 
 
  |