首页 > 数据库 >Django rest_framework 自定义捕获数据库错误

Django rest_framework 自定义捕获数据库错误

时间:2023-01-16 15:56:11浏览次数:42  
标签:exc 自定义 rest Django framework import response view

自定义捕获错误

from django.db import DatabaseError
from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import exception_handler

import logging

logger = logging.getLogger('django')
"""
此处的"django"是settings中的
# 日志对象
    'loggers': {
        'django': {
            'handlers': ['console', 'file'],  # 将来项目上线,把console去掉
            'propagate': True,
        },
    }
"""


def custom_exception_handler(exc, context):
    """
    自定义异常处理
    :param exc: 异常类
    :param context:  抛出异常的上下文
    :return: Response响应对象
    """
    # 调用drf框架原生的异常处理方法
    response = exception_handler(exc, context)  # context是个字典记录错误发生的具体位置,其中{'view':'记录了哪个文件,哪行报错了'}

    if response is None:
        view = context['view']
        if isinstance(exc, DatabaseError):
            # 数据库异常
            # logger.error('[%s] %s' % (view, exc))
            logger.error(f'{view} {exc}')
            response = Response({'message': '服务器内部错误'}, status=status.HTTP_507_INSUFFICIENT_STORAGE)
    return response

 

标签:exc,自定义,rest,Django,framework,import,response,view
From: https://www.cnblogs.com/vPYer/p/17055587.html

相关文章

  • MySQL自定义排序ORDER BY FIELD
    在一些场景中,有场景A查询出一个已经排好顺序的id,需要到场景B中查询这些,使用mysql中的WHERE**IN(****),查询出来的结果并不是按照传入的list排序的.但是......
  • 「HTML+CSS」自定义加载动画【049】
    前言Hello!小伙伴!首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~哈哈自我介绍一下昵称:海轰标签:程序猿一只|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • 「HTML+CSS」--自定义加载动画【044】
    前言Hello!小伙伴!首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~哈哈自我介绍一下昵称:海轰标签:程序猿一只|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • 「HTML+CSS」--自定义加载动画【045】
    前言Hello!小伙伴!首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~哈哈自我介绍一下昵称:海轰标签:程序猿一只|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • 「HTML+CSS」--自定义加载动画【043】
    前言Hello!小伙伴!首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~哈哈自我介绍一下昵称:海轰标签:程序猿一只|C++选手|学生简介:因C语言结识编程,随后转入计算......
  • springboot反射 + 自定义注解
    利用反射调用方法获取bean寻找bean中指定的方法method(方法名可能匹配,参数类型不匹配,故还要分析参数类型)利用method.invoke方法Spring已经为此实现了完整的机制,......
  • python django学生选课系统
    pythondjango学生选课系统后端:Pythondjango数据库:MySQL前端:htmlcssjs实现功能:登录、注册、查看自己信息、修改自己信息等学生:看课、选课、查学分老师:创建课程、......
  • Python django 公寓管理系统
    Pythondjango公寓管理系统django公寓租房系统django酒店订购系统django公寓订购系统技术:Pythondjango数据库:MySQL前端:htmlcssjs涉及到的功能:登录、注册、......
  • Python django 会议室管理系统
    Pythondjango会议室管理系统django会议室申请系统django会议室系统技术:Pythondjango数据库:MySQL涉及功能:登录、注册、登出、管理员登录、管理用户信息等添加会......
  • Python django 图书馆管理系统
    Pythondjango图书馆管理系统技术:Python  django数据库:sqlite3(或MySQL)前段:html css  js 功能:注册,注销,改密码,添加图书,添加图书照片,查看图书,普通用户只能查看......