baseresponse響應類_內部類、響應類Response、序列化基類、反序列化、全局局部鉤子...

一、內部類

1、概念:將類定義在一個類的內部,被定義的類就是內部類

2、特點:內部類及內部類的所以名稱空間,可以直接被外部類訪問的

3、 應用:通過內部類的名稱空間,給外部類額外拓展一些特殊的屬性(配置),典型的Meta內部類 - 配置類

class Book(model.Model):

class Meta:

db_model = "owen_book"? ? ? ? ? ? ? ? # 配置自定義表名

class BookSerializer(serializers.ModelSerializer):

class Meta:

model = "Book"? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 配置序列化類綁定的Model表

結果:

列子:特點:內部類及內部類的所以名稱空間,可以直接被外部類訪問的

二、DRF響應類:Response

1、源碼:

def __init__(self, data=None, status=None, template_name=None, headers=None, exception=False, content_type=None):

pass

2、源碼中的參數:

data:響應的數據 - 空、字符串、數字、列表、字段、布爾

status:網絡狀態碼

template_name:drf說自己也可以支持前后臺不分離返回頁面,但是不能和data共存(不會涉及)

headers:響應頭(不用刻意去管)

exception:是否是異常響應(如果是異常響應,可以賦值True,沒什么用)

content_type:響應的結果類型(如果是響應data,默認就是application/json,所有不用管)

3、常見使用

return Response(

data={

'status': 0,

'msg': 'ok',

'result': '正常數據'

}

)

return Response(

data={

'status': 1,

'msg': '客戶端錯誤提示',

},

status=status.HTTP_400_BAD_REQUEST,

exception=True

)

響應類源碼:最重要的是data和status

例子:設置網絡狀態碼

結果:

三、序列化基類(BaseSerializer)

1、源碼:

def __init__(self, instance=None, data=empty, **kwargs):

pass

2、源碼中的參數:

instance:是要被賦值對象的 - 對象類型數據賦值給instance

data:是要被賦值數據的 - 請求來的數據賦值給data

kwargs:內部有三個屬性:many、partial、context

many:操作的對象或數據,是單個的還是多個的

partial:在修改需求時使用,可以將所有校驗字段required校驗規則設置為False

context:用于視圖類和序列化類直接傳參使用

圖片:

3、 常見使用

# 單查接口

UserModelSerializer(instance=user_obj)

# 群查接口

UserModelSerializer(instance=user_query, many=True)

# 增接口

UserModelSerializer(data=request.data)

# 整體改接口

UserModelSerializer(instance=user_obj, data=request.data)

# 局部改接口

UserModelSerializer(instance=user_obj, data=request.data, partial=True)

# 刪接口,用不到序列化類

四、反序列化

1、views.py文件中

classUserAPIView(APIView):def post(self, request, *args, **kwargs):#單增

#1)將前臺請求的數據交給序列化類處理

#2)序列化類執行校驗方法,對前臺提交的所有數據進行數據校驗:校驗失敗就是異常返回,成功才能繼續

#3)序列化組件完成數據入庫操作,得到入庫對象

#4)響應結果給前臺

serializer = serializers.UserModelSerializer(data=request.data)ifserializer.is_valid():#校驗成功 => 入庫 => 正常響應

obj =serializer.save()returnResponse({'status': 0,'msg': 'ok','result': '新增的那個對象'}, status=status.HTTP_201_CREATED)else:#校驗失敗 => 異常響應

returnResponse({'status': 1,'msg': serializer.errors,

}, status=status.HTTP_400_BAD_REQUEST)

2、is_valid() 源碼:

斷言(assert): 其實就是等于? if...raise error

3、.save() 源碼:

4、提交post請求:

錯誤原因:

5、serializer 反序列化 分析:

第一波分析:

第二波分析

第三波 自定義反序列化字段

01、自定義只寫字段,在serializer類中聲明,必須手動明確write_only

02、自定義只讀字段,在model類中用@property聲明,默認就是read_only

6、全部、局部鉤子(用來篩選條件的)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533450.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533450.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533450.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python模塊名限定_python?正則表達式?匹配??的使用?限定符?sys.re模塊

特殊字符:注意\b是匹配單詞而非字符串的開始和結束; \w不能匹配漢字限定符放在匹配符的后邊2 括號分組:(\d\d\d){2} #有括號匹配6位數字\d\d\d{2} #沒有括號匹配4位數字3 ?的使用4 sys.re模塊的常用函數表:查找、分隔、…

計算機不能進入桌面,電腦開機無法進入桌面,請高手解決。

該故障是Windows XP操作系統關機故障中最容易出現的故障。造成該故障的原因可能有以下幾方面原因:系統設置在添亂Windows XP默認情況下,當系統出現錯誤時會自動重新啟動,這樣當用戶關機時,如果關機過程中系統出現錯誤就會重新啟動…

太陽能板清洗機器人科沃斯_太陽能電池板清潔機器人

太陽能電池板清潔機器人銳寶RAYBOT,可以實現自動升降式地免水清掃,使常年暴露在太陽下的電池板能徹底擺脫灰塵和污垢。當放置在太陽能電池板上時,銳寶能夠自主行走、跨越最大3cm間隙并自動規劃路線。底部吸盤設計能使RAYBOT安全地吸附在最大安…

html jq 控制顯示密碼,js、jquery分別實現點擊密碼輸入框密碼顯示和隱藏

很多密覽始不次這得是覺磚怎可我滾腦選的方近器上碼框都有個眼睛標記,點擊能顯示密碼。原理就是點擊切換password為te要圈器是天的年編功小還久概據含直這請框結業未商屏頁屏隨會維氣大機域頁效實一應控高標近用功的xt等顯示主要知識點:onmousedown&…

maven依賴循環引用_maven循環引用的問題

多模塊的maven工程,有時候由于設計的不合理或者需求的變更。會導致模塊之間產生循環依賴,編譯的時候會報如下的錯誤:[INFO] Scanning for projects... [ERROR] The projects in the reactor contain a cyclic reference: Edge between .....重…

翻翻看 類型html5,3款容易上手的HTML5編輯工具推薦~

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓我們的生活已經時刻可見H5頁面的身影,從美食到用車、從購物到求職,可以說HTML5技術對我們生活的影響是顛覆性的。今天小編就給大家推薦5款容易上手的H5頁面,大家可以通過自己制作H5頁面來感受一下…

ilm 和dlm差異_《存儲e周刊》第28期?信息生命周期管理之爭

說二月份的最后一周是ILM之周,完全是因為EMC在華推出了其歷史上最廣泛的分級存儲平臺組合,跨高端、中端、網絡附加存儲(NAS)與內容尋址存儲(CAS)的全部系列,希望以此幫助客戶實現信息在整個生命周期中的最大價值。而信息生命周期管理的存儲理…

幼兒園體育游戲電子計算機教案,【幼兒園體育跳圈圈教案】小班體育教案跳圈圈_小班跳圈圈游戲教案_親親寶貝網...

教案二:小兔跳圈活動目標:1、在原地縱跳和短距離雙腳連續向前跳的基礎上,嘗試較長距離雙腳連續向前跳圈。2、提高身體的協調能力和彈跳能力。活動準備:1、材料準備:呼啦圈若干、小兔頭飾、蘑菇、籃子。2、游戲場地設置…

crtsiii型無砟軌道板_自主知識產權CRTSⅢ型軌道板助力,贛深鐵路無砟軌道軌道板灌注第一工作面完成...

(本報河源訊 通訊員 陳前名 楊琰妤)11月29日,伴隨著碧源中橋軌道板最后一方自密實混凝土澆筑完成,標志著由中國中鐵四局機電公司贛深鐵路項目部負責施工的第一工作面無砟軌道工程圓滿完成,為實現年底全線軌道板全部灌注的目標奠定了堅實基礎。…

thymeleaf 復選框回顯_Thymeleaf+layui+jquery復選框回顯

一、Thymeleaflayuijquery復選框回顯基于Thymeleaf模板下的layuijquery復選框回顯,主要是jquery。大致意思是:把數組轉成JSON傳到前臺,再在前臺轉回數組 AJAX一般都是用JSON格式或XML格式來傳遞數據的JSON就是一種具有特殊格式的字符串。1.實…

計算機網絡畫出發送窗口變化,全國2010年7月自考計算機網絡原理試題及答案

全國2010年7月自考計算機網絡原理試題及答案課程代碼:04741一、單項選擇題(本大題共24小題,每小題1分,共24分)在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代碼填寫在題后的括號內。錯選、多選或未選均無分。1.由一…

帶孔的打印紙怎么設置_帶孔電腦打印紙規格尺寸的相關知識及應用范圍

1.帶孔電腦打印紙規格尺寸的相關知識及應用范圍。帶孔電腦打印紙有分241mm和381mm通用兩種規格。這里的241mm和381mm指的是的寬度,通常用的時候來分層數,可以分為1至6層甚至7、8層之多,打印紙的顏色有白、紅、藍、綠、黃五種,而白…

聾人工學院計算機老師,聾人工學院12位手語老師用雙手傳遞聲音

在全國第十屆殘運會暨第七屆特奧會上有一個特殊的節目,它雖然是舞蹈,但表演者卻聽不見背景音樂,它雖然需要踩點,但表演者卻只能靠記憶與眼睛去完成每一個節拍。70名理工大學聾人工學院的聽障同學將克服身體殘疾,共同演…

mysql 乘法_測試面試題集Python花式打印九九乘法口訣表

——————今天距2020年28天——————這是ITester軟件測試小棧第85次推文面試的時候,面試官可能要求原地秀一段代碼,比如小學生都必須會默寫的九九乘法口訣表,有長方形格式、左下三角形格式、左上三角形格式、右上三角形格式、以及右下三…

量子計算機怎么編程,量子計算機編程(一)——QPU編程

今天要給大家介紹的是這本書《Programming Quantum Computers —— Essential Algorithms and Code Samples》,主要講如何在量子計算機上編程,又示例的代碼可以跑 https://oreilly-qc.github.io./ ,這本書的理解方向是純粹計算機的&#xff0…

python支付寶自動轉賬_python實現支付寶轉賬接口

python實現支付寶轉賬接口發布時間:2020-09-14 03:23:42來源:腳本之家閱讀:128由于工作需要使用python開發一個自動轉賬接口,記錄一下開發過程。首先需要在螞蟻金服上申請開通開發者賬戶,有了開發者賬戶就可以使用沙箱…

計算機配置動態硬盤,如何把硬盤的類型從動態變成基本?

將動態磁盤轉換為基本磁盤基本磁盤和動態磁盤是Windows系統下兩種基本的硬盤配置類型。大部分的個人計算機使用的是基本磁盤,這樣能讓磁盤管理變得簡單。高級用戶和IT管理員使用的可能就是動態磁盤以便改善多磁盤計算機的性能。基本磁盤使用主分區,擴展分…

unity 紋理壓縮格式‘_紋理優化:讓你的紋理也“瘦”下來

在上一期《紋理優化:不僅僅是一張圖片那么簡單》中,我們針對紋理相關的優化,挑選了部分知識點分析。無論是大家在開發時的疏忽,還是對相關知識點的理解不足,這些問題的積累最終都會反映到項目的性能表現上。為此&#…

2020中級計算機工程師,2020年上半年中級網絡工程師報考詳解

原標題:2020年上半年中級網絡工程師報考詳解軟考全稱叫做“全國計算機技術與軟件專業技術資格(水平)考試”已經開展了十多年了,所受到的歡迎程度也是越來越高,據統計累計參加軟考的人數已超300萬人,同時每年以21萬人的速度持續增加…