首页 > 其他分享 >异常处理(统一接口返回)

异常处理(统一接口返回)

时间:2023-11-01 22:23:50浏览次数:33  
标签:返回 status return exc 接口 Response handler 异常 response

异常处理统一

# 统一接口返回

# 自定义异常方法,替换掉全局
# 写一个方法
# 自定义异常处理的方法
from rest_framework.views import exception_handler
from rest_framework.response import Response
from rest_framework import status

def my_exception_handler(exc, context):
    response = exception_handler(exc, context)
    # 两种情况:
    # 一个是None,drf没有处理
    # 另一个是response对象 django处理了 但是处理的不符合咱们的要求
    # print(exc)
    # print(context)
    if not response:
        if isinstance(exc, ZeroDivisionError):
            return Response(data={'status': 777, 'msg': "除以0" + str(exc)}, status=status.HTTP_400_BAD_REQUEST)
        return Response(data={'status': 999, 'msg': str(exc)}, status=status.HTTP_400_BAD_REQUEST)
    else:
        # return response
        return Response(data={'status': 888, 'msg': response.data.get('detail')}, status=status.HTTP_400_BAD_REQUEST)
    
# 全局配置setting.py
'EXCEPTION_HANDLER': 'app01.app_auth.my_exception_handler',

标签:返回,status,return,exc,接口,Response,handler,异常,response
From: https://www.cnblogs.com/piggthird/p/17804262.html

相关文章

  • ElementUI Checkbox 多选框 返回对象
    checkBox和checkGroup通过v-model绑定的数据只能是number/string/Array 如何回调返回对象呢? 已知能返回label字符串,我们可以把label=对象id +','+ 对象名称拼接,然后返回,或者label=json字符串再传出每次选中操作后会回调返回选中数组 ......
  • PC企业微信hook接口,通过查询添加外部联系人教程
    简要描述通过查询添加为联系人(外部联系人)操作码102008请求说明参数名必选类型说明type是int类型addType是string类型14微信用户1企业用户user_id是string用户idcontent是string添加请求语openid是string标识syncKey是string同步key请求示例{"type":102008,"data":{"a......
  • 京东商品详情接口,驱动业务增长与优化用户体验
    京东商品详情接口可以帮助开发者获取商品详情数据,从而驱动业务增长和优化用户体验。以下是使用京东商品详情接口的具体方法和应用效果:方法:在京东开放平台注册开发者账号并创建应用。获取密钥(AppKey和AppSecret)。封装JD.item_get-获取商品详情数据。获取API调用SDK demo......
  • 懒人必备!编辑器内写完代码一键调试、一键生成接口文档
    国产API调试工具Apipost推出IDEA插件,写完代码就可以调试接口并一键生成接口文档!而且还可以根据已有的方法帮助您快速生成url和params。ApipostHelper=API调试工具+API管理工具+API搜索工具。在商店中搜索或直接点击下方链接即可下载:https://plugins.jetbrains.com/p......
  • 拼多多详情 API 接口数据采集及营销策略渠道店铺业务增长
    拼多多详情API接口可以提供丰富的商品信息和销售数据,通过数据采集和分析,企业可以制定更加精准的营销策略,促进业务增长。以下是使用拼多多详情API接口进行数据采集和营销策略制定的步骤和方法:步骤1:获取拼多多详情API接口的访问权限在拼多多开放平台注册并创建应用,获取API密......
  • 电商商品价格数据接口的具体方法和应用效果
    电商商品价格数据接口的具体方法包括以下步骤:获取API密钥:在使用任何API之前,需要获取一个API密钥,用于验证身份和确保请求安全。调用API:根据电商平台提供的API文档,使用合适的编程语言(如Python、Java、JavaScript等)调用API。通常需要提供一些参数(如商品ID、价格阈值等),然后API会返回所......
  • Allure企业级报告定制化自定义logo,中文标题,模块名,用例名,用例详细的测试数据如用例日志
    【自定义logo】进入Allure的安装路径,找到config目录。在config目录下,找到allure.yml文件,并打开该文件。在allure.yml文件中,添加custom-logo-plugin选项。进入Allure的安装路径,找到plugins目录下的custom-logo-plugin目录。在custom-logo-plugin目录下,找到static目录,并将自己需要展......
  • startservice 返回5
    返回值返回以下列表中列出的值之一,或指示错误的任何其他值。有关其他错误代码,请参阅 WMI错误常量 或 WbemErrorEnum。有关常规 HRESULT 值,请参阅 系统错误代码。0已接受该请求。1不支持该请求。2用户没有必要的访问权限。3由于其他正在运行的服务依赖......
  • WCF restful 上传文件 返回413 request entity too large
    网上各种加binding都不行最后找到了在配置文件中加 webHttpBinding1<system.serviceModel>2<bindings>3<webHttpBinding>4<binding5maxBufferPoolSize="2048576000"6......
  • doris FE启动异常:org.yaml.snakeyaml.representer.Representer: method <init>()V not
    dorisFF启动异常,异常信息如下:  2023-11-0109:53:22,691INFO(main|1)[PaloFe.start():124]PaloFEstarting...2023-11-0109:53:22,699INFO(main|1)[FrontendOptions.analyzePriorityCidrs():107]configuredprior_cidrsvalue:10.252.226.5/242023-11-0109:5......