跳转到主要内容

使用functools.singledispatch构建的django-rest-framework异常处理器

项目描述

Django REST framework异常分发器

django-rest-framework 异常处理器 使用 functools.singledispatch 构建。

安装

要使用 drf-exception-dispatcher,只需使用您的包管理器进行安装,例如使用 pip

pip install drf-exception-dispatcher

然后只需在Django的 REST_FRAMEWORK 设置部分使用 exception_dispatcher.handlers.exception_handler(或基于 exception_dispatcher 构建的您自己的异常处理器)

REST_FRAMEWORK = {
  # ...
  'EXCEPTION_HANDLER': 'exception_dispatcher.handlers.exception_handler',
  # ...
}

配置

以下设置用于使默认的 exception_dispatcher 处理器可配置

  • EXCEPTION_DISPATCHER_SET_ROLLBACK(默认为 True)- 指示在从异常处理器返回响应之前是否应调用 set_rollback
  • EXCEPTION_DISPATCHER_API_EXCEPTION_PARSER(默认为 exception_dispatcher.parsers.parse_rest_framework_api_exception') - 用于将发生的 exception 转换为响应数据的可调用对象的导入路径

用法

要向 exception_dispatchers 添加新的处理器,只需使用处理器的 register() 方法即可,例如添加 SuspiciousOperation 异常的处理程序

from exception_dispatcher.dispatchers import exception_dispatcher
from exception_dispatcher.types import ContextType
from rest_framework.response import Response


@exception_dispatcher.register
def handler_suspicious_operation(
    exception: SuspiciousOperation,
    context: ContextType,
) -> Response | None:
    """Handle Django's `SuspiciousOperation` exceptions."""
    # custom ``exception` handler logic goes here
    return None

项目详情


下载文件

下载您平台上的文件。如果您不确定要选择哪一个,请了解更多关于 安装包 的信息。

源代码分发

drf-exception-dispatcher-0.1.0.tar.gz (5.6 kB 查看哈希值)

上传时间 源代码

构建分发

drf_exception_dispatcher-0.1.0-py3-none-any.whl (7.8 kB 查看哈希值)

上传时间 Python 3

由以下组织支持