【Django-ninja】在django ninja中处理异常
ninja
a small build system with a focus on speed
项目地址:https://gitcode.com/gh_mirrors/ni/ninja
免费下载资源
·
1. 直接抛内置异常
Django ninja内置了一些常用异常类。
from ninja.errors import HttpError
@api.get("/some/resource")
def some_operation(request):
if True:
raise HttpError(503, "Service Unavailable. Please retry later.")
2. 覆写异常类
可以覆写内置异常类的handler,改变返回结果的内容。
from ninja.errors import ValidationError
...
@api.exception_handler(ValidationError)
def validation_errors(request, exc):
return HttpResponse("Invalid input", status=422)
3. 自定义异常类
以创建一个500服务不可用异常类为例。
要实现这一点,你需要:
- 自定义一个ServiceUnavailableError
- 使用
api.exception_handler
为ServiceUnavailableError异常添加一个处理函数
api = NinjaAPI()
class ServiceUnavailableError(Exception):
pass
# initializing handler
@api.exception_handler(ServiceUnavailableError)
def service_unavailable(request, exc):
return api.create_response(
request,
{"message": "Please retry later"},
status=503,
)
# some logic that throws exception
@api.get("/service")
def some_operation(request):
if random.choice([True, False]):
raise ServiceUnavailableError()
return {"message": "Hello"}
GitHub 加速计划 / ni / ninja
4
0
下载
a small build system with a focus on speed
最近提交(Master分支:3 个月前 )
dcefb838
Fix typo: Explaantions -> Explanations 6 个月前
2f19d3a0 - 6 个月前
更多推荐
已为社区贡献8条内容
所有评论(0)