在django ninja中處理異常問(wèn)題
1. 直接拋內(nèi)置異常
Django ninja內(nèi)置了一些常用異常類(lèi)。
from ninja.errors import HttpError
@api.get("/some/resource")
def some_operation(request):
if True:
raise HttpError(503, "Service Unavailable. Please retry later.")
2. 覆寫(xiě)異常類(lèi)
可以覆寫(xiě)內(nèi)置異常類(lèi)的handler,改變返回結(jié)果的內(nèi)容。
from ninja.errors import ValidationError
...
@api.exception_handler(ValidationError)
def validation_errors(request, exc):
return HttpResponse("Invalid input", status=422)
3. 自定義異常類(lèi)
以創(chuàng)建一個(gè)500服務(wù)不可用異常類(lèi)為例。
要實(shí)現(xiàn)這一點(diǎn),你需要:
- 自定義一個(gè)ServiceUnavailableError
- 使用
api.exception_handler為ServiceUnavailableError異常添加一個(gè)處理函數(shù)
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"}總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python?flask?sqlalchemy的簡(jiǎn)單使用及常用操作
這篇文章主要介紹了Python?flask?sqlalchemy的簡(jiǎn)單使用及常用操作,在python中,常用的ORM工具就是sqlalchemy了。下面就以一個(gè)簡(jiǎn)單的flask例子來(lái)說(shuō)明吧,需要的小伙伴可以參考一下2022-08-08
OpenCV學(xué)習(xí)之圖像形態(tài)學(xué)處理詳解
這篇文章主要為大家詳細(xì)介紹了OpenCV中圖像形態(tài)學(xué)處理的相關(guān)知識(shí),例如:腐蝕操作、膨脹操作、開(kāi)閉運(yùn)算、梯度運(yùn)算、Top Hat Black Hat運(yùn)算等操作,需要的可以參考一下2023-02-02
Django框架獲取form表單數(shù)據(jù)方式總結(jié)
這篇文章主要介紹了Django框架獲取form表單數(shù)據(jù)方式總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
python實(shí)現(xiàn)下載指定網(wǎng)址所有圖片的方法
這篇文章主要介紹了python實(shí)現(xiàn)下載指定網(wǎng)址所有圖片的方法,涉及Python針對(duì)頁(yè)面的讀取、遍歷及文件操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
pytorch中的自定義反向傳播,求導(dǎo)實(shí)例
今天小編就為大家分享一篇pytorch中的自定義反向傳播,求導(dǎo)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
Python查找算法之折半查找算法的實(shí)現(xiàn)
這篇文章主要介紹了Python查找算法之折半查找算法的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04

