Django Rest framework解析器和渲染器詳解
解析器
解析器的作用就是服務(wù)端接收客戶端傳過(guò)來(lái)的數(shù)據(jù),把數(shù)據(jù)解析成自己想要的數(shù)據(jù)類型的過(guò)程.
本質(zhì)就是對(duì)請(qǐng)求體中的數(shù)據(jù)進(jìn)行解析.
Content-type:用于聲明我給你傳的是什么類型的數(shù)據(jù)
- application/x-ww-form-urlencoded 表單數(shù)據(jù)類型
- multipart/form-data 文件
- application/json(比如:request.body)
- Accept:用于聲明我能解析什么樣的數(shù)據(jù)類型
Django中的解析器
我們的請(qǐng)求進(jìn)來(lái)后,請(qǐng)求體中的數(shù)據(jù)是保存在request.body中的.
這就說(shuō)明:==解析器會(huì)把解析好的數(shù)據(jù)放入request.body中.==
我們?cè)谝晥D中打印request的類型,便可知道request是WSGIRequest這個(gè)類的.
我們可以看下這個(gè)類的源碼,我們是這樣拿到request.POST數(shù)據(jù)的:


application/x-www-form-urlencoded不是不能上傳文件,是只能上傳文本格式的文件.
multipart/form-data是將文件以二進(jìn)制的形式上傳,這樣可以實(shí)現(xiàn)多種類型的文件上傳.
一個(gè)解析到request.POST中,一個(gè)解析到request.FILES中.
也就是說(shuō),在Django中我們之所以能在request中得到各種數(shù)據(jù)類型,是因?yàn)槲覀兪褂昧诉@些解析器.
DRF中的解析器
DRF的請(qǐng)求數(shù)據(jù)都在request.data中.
所以,我們就來(lái)看Request類中的data:






得到解析器后,調(diào)用解析器里的parse方法:

到這里,我們?cè)倏聪翫RF配置的默認(rèn)的解析器的類都有哪些:

DEF支持Json、Form表單的請(qǐng)求,包括多種文件類型的數(shù)據(jù):

我們也可以再視圖中配置視圖級(jí)別的解析器:

好
DRF中的渲染器
渲染器為我們友好地展示數(shù)據(jù).
DRF為我們提供的渲染器有:

一個(gè)是Json的,一個(gè)是瀏覽器的.
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
異步任務(wù)隊(duì)列Celery在Django中的使用方法
對(duì)于網(wǎng)站來(lái)說(shuō),給用戶一個(gè)較好的體驗(yàn)是很重要的事情,其中最重要的指標(biāo)就是網(wǎng)站的瀏覽速度。因此服務(wù)端要從各個(gè)方面對(duì)網(wǎng)站性能進(jìn)行優(yōu)化,這篇文章主要介紹了異步任務(wù)隊(duì)列Celery在Django中的使用方法,感興趣的小伙伴們可以參考一下2018-06-06
python利用K-Means算法實(shí)現(xiàn)對(duì)數(shù)據(jù)的聚類案例詳解
這篇文章主要介紹了python利用K-Means算法實(shí)現(xiàn)對(duì)數(shù)據(jù)的聚類,本文通過(guò)案例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5信號(hào)與槽的高級(jí)使用技巧裝飾器信號(hào)與槽詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5信號(hào)與槽的高級(jí)使用技巧裝飾器信號(hào)與槽詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-03-03
python 實(shí)現(xiàn)對(duì)文件夾中的圖像連續(xù)重命名方法
今天小編就為大家分享一篇python 實(shí)現(xiàn)對(duì)文件夾中的圖像連續(xù)重命名方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
Opencv Python實(shí)現(xiàn)兩幅圖像匹配
這篇文章主要為大家詳細(xì)介紹了Opencv Python實(shí)現(xiàn)兩幅圖像匹配,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06

