<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Django+DRF 實戰:自定義異常處理流程

      一、DRF 異常處理流程

      DRF 默認異常處理流程

      DRF默認的異常處理流程如下:

      1. 當異常發生時,會自動調用rest_framework.views.exception_handler 函數來處理異常。
      2. 該函數對DRF異常(即繼承了APIException 類)和Django內置的Http404、PermissionDenied異常,提取錯誤信息并返回響應
      3. 其它異常不處理,返回None(拋出到外層)。

      源碼

      下面是DRF的exception_handler 異常處理函數源碼

      # rest_framework.views.py
      def exception_handler(exc, context):
          if isinstance(exc, Http404):
              exc = exceptions.NotFound(*(exc.args))
          elif isinstance(exc, PermissionDenied):
              exc = exceptions.PermissionDenied(*(exc.args))
      
          if isinstance(exc, exceptions.APIException):
              headers = {}
              if getattr(exc, 'auth_header', None):
                  headers['WWW-Authenticate'] = exc.auth_header
              if getattr(exc, 'wait', None):
                  headers['Retry-After'] = '%d' % exc.wait
      
              if isinstance(exc.detail, (list, dict)):
                  data = exc.detail
              else:
                  data = {'detail': exc.detail}
      
              set_rollback()
              return Response(data, status=exc.status_code, headers=headers)
      
          return None
      

      二、實戰

      DRF 自定義異常處理流程

      DRF 自定義異常處理流程示例:

      1. 定義custom_exception_handler函數,作為DRF的全局異常處理器
      2. 該函數記錄詳細的錯誤日志,包括用戶、IP、請求路徑、方法、視圖及異常信息。然后,統一返回錯誤響應格式
        • 若異常未被 DRF 捕獲,返回 500 錯誤或特定 ProtectedError 提示
        • 若為 DRF 的 ValidationError 或 Django 的驗證錯誤,調用對應處理函數提取錯誤信息
        • 其他異常則根據狀態碼返回預定義的友好提示

      image-20250707171946912

      應用自定義異常處理流程

      settings.py 中,配置DRF自定義異常處理函數,作為全局異常處理器。

      REST_FRAMEWORK = {
          # ...
          # 全局異常處理
          "EXCEPTION_HANDLER": "mars_framework.exceptions.base.custom_exception_handler",
          # ...
      }
      

      點擊查看完成代碼


      您正在閱讀的是《Django從入門到實戰》專欄!關注不迷路~

      posted @ 2025-07-10 17:14  小王子1024  閱讀(227)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 丰满无码人妻热妇无码区| 赣州市| 三级4级全黄60分钟| 无码尹人久久相蕉无码| 久久久久无码国产精品一区| 成人污视频| 国产精品国产三级国快看| 九九久久自然熟的香蕉图片| 最新午夜男女福利片视频| 粉嫩av蜜臀一区二区三区| 色九月亚洲综合网| 资中县| 在线观看中文字幕国产码| 人人澡人摸人人添| 亚洲精品宾馆在线精品酒店 | 国产伦码精品一区二区| 本溪市| 亚洲日韩精品一区二区三区无码| 国产线播放免费人成视频播放| 日韩国产欧美精品在线| 成在线人免费视频| 亚洲天堂伊人久久a成人| 在线观看免费人成视频色9| 久久99精品国产麻豆宅宅| 四虎永久精品免费视频| 护士张开腿被奷日出白浆| 久久视频这里只精品| 亚洲sm另类一区二区三区| 日韩精品一区二区在线看| 国产av剧情md精品麻豆| 午夜欧美精品久久久久久久| 国产精品亚洲二区在线播放| 精品久久久久国产免费| 国产 浪潮av性色四虎| 色综合色综合久久综合频道| 亚洲A综合一区二区三区| 人妻aⅴ无码一区二区三区| 国产高在线精品亚洲三区| 蜜臀av久久国产午夜| 乐昌市| 亚洲欧美人成人让影院|