九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
探索drf執(zhí)行流程之APIView源碼分析

1 Django REST framework 簡(jiǎn)介

現(xiàn)在新一代web應(yīng)用都開(kāi)始采用前后端分離的方式來(lái)進(jìn)行,淘汰了以前的服務(wù)器端渲染的方式。而實(shí)現(xiàn)前后端分離是通過(guò)Django REST framework(以下簡(jiǎn)稱 DRF)來(lái)實(shí)現(xiàn)的。他是Django框架的一個(gè)擴(kuò)展,提供了便捷的 REST API 開(kāi)發(fā)框架。前后端分離方式有許多好處,比如:

1.1 可以前后端并行開(kāi)發(fā),提高開(kāi)發(fā)效率

1.2 頁(yè)面都在客戶端進(jìn)行渲染,提高了渲染速度,減小了服務(wù)器的壓力

1.3 一套api提供給多個(gè)客戶端使用,而且不限制客戶端的類型(web,app均可)

提到前后端分離必然會(huì)提到restful,目標(biāo)這是最流行的接口規(guī)范,越來(lái)越多的大型應(yīng)用開(kāi)始使用restful規(guī)范,restful強(qiáng)調(diào)一種無(wú)狀態(tài),資源的方式在django中很著名的一個(gè)框架是drf,幫我們減少了很多工作量。 網(wǎng)上關(guān)于 REST 的討論很多,在一些細(xì)節(jié)的地方卻經(jīng)常稍有出入,不過(guò)大體思想都是充分利用 HTTP/HTTPS 協(xié)議的特點(diǎn),比如 HTTP 方法、header 信息、HATEOAS,直接面向資源進(jìn)行操作。

2 Django REST framework 框架

Django REST framework 框架是一個(gè)用于構(gòu)建Web API 的強(qiáng)大的工具。通常簡(jiǎn)稱為DRF框架 或 REST framework。DRF框架是建立在Django框架基礎(chǔ)之上,由Tom Christie大牛二次開(kāi)發(fā)的開(kāi)源項(xiàng)目。

3 Django REST framework 十大組件

drf中有封裝了十大組件,分別是序列化組件,視圖組件,認(rèn)證組件,權(quán)限組件,頻率組件,解析器,分頁(yè)器,響應(yīng)器,url控制器,版本控制。這十大組件,能夠很好的幫助開(kāi)發(fā)人員提升開(kāi)發(fā)效率。

4 走進(jìn)drf源碼執(zhí)行流程

4.1路由層調(diào)用as_view()方法

4.2 視圖類中沒(méi)有as_view()方法,所以去父類APIView中找

4.3 as_view最終還是dispatch方法,此時(shí)應(yīng)該注意查找順序,從視圖類往上找,這個(gè)dispatch方法是APIView中的dispatch,很多人用Ctrl 左鍵點(diǎn)擊跳轉(zhuǎn)會(huì)跳到View中的dispatch中。此處要特別注意。

4.4 initialize_request如何將原生的request封裝到Request中

4.5 Request類中干了啥

把一些常用的方法重新封裝了,如GET方法封裝成了query_params,并偽裝成屬性。

4.6 原生的request和視圖類中其他數(shù)據(jù)封裝到Request類中后,走了initial方法

4 .7 最后通過(guò)映射進(jìn)行分發(fā),并返回

5 總結(jié)

其實(shí)drf源碼的執(zhí)行流程和django中的view源碼執(zhí)行流程的區(qū)別關(guān)鍵是在于dispatch方法中執(zhí)行的功能不同,drf是在dispatch中對(duì)原生的request進(jìn)行了封裝,然后通過(guò)initial()方法來(lái)執(zhí)行認(rèn)證,權(quán)限,頻率的控制。后續(xù)會(huì)更新這三大組件的源碼分析,敬請(qǐng)期待!?。?!

來(lái)源:https://www.icode9.com/content-1-323751.html
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
django+DRF+JWT:量化平臺(tái)的后端開(kāi)發(fā)
Django-rest framework框架
03 認(rèn)識(shí)Django REST framework
測(cè)試開(kāi)發(fā)你不得不學(xué)的 REST API 開(kāi)發(fā)
07 渲染模塊
restframework詳細(xì)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服