当前位置:   article > 正文

Django自定义异常_django自定义异常处理

django自定义异常处理
1. 在项目文件下新增utils包,在utils包中新增exceptions.py文件
  1. # 自定义异常,在原有的drf异常上添加了数据库异常和redis异常
  2. from rest_framework.views import exception_handler as drf_exception_handler
  3. import logging
  4. from django.db import DatabaseError
  5. from redis.exceptions import RedisError
  6. from rest_framework.response import Response
  7. from rest_framework import status
  8. # 获取在配置文件中定义的logger,用来记录日志
  9. logger = logging.getLogger('django')
  10. def exception_handler(exc, context):
  11. """
  12. 自定义异常处理
  13. :param exc: 异常
  14. :param context: 抛出异常的上下文
  15. :return: Response响应对象
  16. """
  17. # 调用drf框架原生的异常处理方法
  18. response = drf_exception_handler(exc, context)
  19. if response is None:
  20. view = context['view']
  21. if isinstance(exc, DatabaseError) or isinstance(exc, RedisError):
  22. # 数据库异常
  23. logger.error('[%s] %s' % (view, exc))
  24. response = Response({'message': '服务器内部错误'}, status=status.HTTP_507_INSUFFICIENT_STORAGE)
  25. return response
2. 在settins.py文件中配置异常处理
  1. # rest_framework配置
  2. REST_FRAMEWORK = {
  3. 'EXCEPTION_HANDLER': 'meiduo_mall.utils.exceptions.exception_handler'
  4. }
'
运行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/979486
推荐阅读
相关标签
  

闽ICP备14008679号