欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

后臺(tái)response和異常處理封裝

我們自己封裝的一些東西,往往放在一個(gè)utils文件夾內(nèi),以后也方便管理和導(dǎo)入

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括薛城網(wǎng)站建設(shè)、薛城網(wǎng)站制作、薛城網(wǎng)頁(yè)制作以及薛城網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,薛城網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到薛城省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!

后臺(tái)response封裝

# 自己封裝的Response對(duì)象

from rest_framework.response import Response

class APIResponse(Response):
    def __init__(self,code=1,msg='成功',result=None,status=None,headers=None,content_type=None,**kwargs):
        dic = {
            'code':code,
            'msg':msg
        }
        if result:
            dic['result']=result
        dic.update(kwargs)
        super().__init__(data=dic,status=status,headers=headers,content_type=content_type)

自己封裝的異常處理

# 這里用來(lái)放全局異常

# 這個(gè)方法可以從rest_framework里的settings.py里找到它的配置,然后導(dǎo)入就行,重寫(xiě)該方法
from rest_framework.views import exception_handler
from . import response # 導(dǎo)入自己定義的響應(yīng)對(duì)象
from .logger import log  #導(dǎo)入自己定義的日志對(duì)象


def common_exception_handler(exc, context):
    # 記錄以下報(bào)錯(cuò)信息到日志中
    # context['view']可以取到具體是哪個(gè)視圖出了錯(cuò)
    log.error('view是:%s,錯(cuò)誤是:%s' %(context['view'].__class__.__name__,str(exc)))
    # 先調(diào)用一下原來(lái)的exception_handler方法
    ret = exception_handler(exc, context) # ret是一個(gè)Response對(duì)象,其內(nèi)部有一個(gè)data屬性,放的就是錯(cuò)誤信息
    # 這個(gè)表示如果drf處理不了的異常(交給django處理的異常),我們進(jìn)行處理一下
    if not ret:
        # 這里面也可以放更多其他邏輯,具體對(duì)于會(huì)出現(xiàn)的異常進(jìn)行分類(lèi)處理
        # 比如下面這樣
        # if isinstance(exc,KeyError):
        return response.APIResponse(code=0,msg='error',result=str(exc))
    else:
        # ret.data是一個(gè)字典,字典里是drf處理的異常信息
        return response.APIResponse(code=0,msg='error',result=ret.data)

封裝完畢之后,還需要在settings里配置一下,告訴drf采用我們封裝的異常處理

# 放自己的全局異常
REST_FRAMEWORK = {
    'EXCEPTION_HANDLER': 'luffyapi.utils.exceptions.common_exception_handler',
}

當(dāng)前名稱(chēng):后臺(tái)response和異常處理封裝
文章網(wǎng)址:http://chinadenli.net/article20/dsogdjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站導(dǎo)航網(wǎng)站改版、標(biāo)簽優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司