• drf APIviews自定义异常处理


    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',
    }
    
  • 相关阅读:
    斗破苍穹python爬虫
    卷积神经网络
    爬虫进阶
    深度学习TensorFlow
    python爬虫
    面向对象技术分析、设计、实现
    软件过程模型及其优缺点
    数据结构找最优解
    面向对象技术多态
    面向对象技术UML
  • 原文地址:https://www.cnblogs.com/zhouze/p/11385307.html
Copyright © 2020-2023  润新知