使用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
项目详情
关闭
哈希值 for drf_exception_dispatcher-0.1.0-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6064e938ee4f1c023db96d260624bd5f186a30fea5b3e17899b0dcac2f214568 |
|
MD5 | 2d0e638c0747c83d21ba4c46e4d25c6c |
|
BLAKE2b-256 | fcc49a80d1abf82595feadd5112158cb9edf72148ba4712a8b75d962a05a3d46 |