【DRF解析器和渲染器】
阿新 • • 發佈:2018-11-27
文章目錄
解析器
解析器的作用就是服務端接收客戶端傳過來的資料,把資料解析成自己想要的資料型別的過程.
本質就是對請求體中的資料進行解析.
-
Content-type
:用於宣告我給你傳的是什麼型別的資料 - application/x-ww-form-urlencoded 表單資料型別
- multipart/form-data 檔案
- application/json(比如:request.body)
-
Accept
:用於宣告我能解析什麼樣的資料型別 - ·
Django中的解析器
我們的請求進來後,請求體中的資料是儲存在request.body
中的.
這就說明:解析器會把解析好的資料放入request.body中.
我們在檢視中列印request
的型別,便可知道request
是WSGIRequest
這個類的.
我們可以看下這個類的原始碼,我們是這樣拿到request.POST
資料的:
application/x-www-form-urlencoded
不是不能上傳檔案,是隻能上傳文字格式的檔案.
multipart/form-data
一個解析到request.POST
中,一個解析到request.FILES
中.
也就是說,在Django中我們之所以能在request
中得到各種資料型別,是因為我們使用了這些解析器.
DRF中的解析器
DRF的請求資料都在request.data
中.
所以,我們就來看Request
類中的data
:
得到解析器後,呼叫解析器裡的parse方法:
到這裡,我們再看下DRF配置的預設的解析器的類都有哪些:
DEF支援Json、Form表單的請求,包括多種檔案型別的資料:
我們也可以再檢視中配置檢視級別的解析器:
好.
DRF中的渲染器
渲染器為我們友好地展示資料.
DRF為我們提供的渲染器有:
一個是Json的,一個是瀏覽器的.