DRF的Request

Request 解析前端

REST framwork 的 Request 對象提供了靈活的請求解析,容許你使用 JSON data 或 其餘 media types 像一般處理表單數據同樣處理請求。git

.datagithub

request.data 返回請求主題的解析內容。這跟標準的 request.POST 和 request.FILES 相似,而且還具備如下特色:django

  • 包括全部解析的內容,文件(file) 和 非文件(non-file inputs)。
  • 支持解析 POST 之外的 HTTP method , 好比 PUT, PATCH
  • 更加靈活,不單單支持表單數據,傳入一樣的 JSON 數據同樣能夠正確解析,而且不用作額外的處理(意思是前端無論提交的是表單數據,仍是 JSON 數據,.data 都可以正確解析)。

.data 具體操做,之後再說~api

.query_paramside

request.query_params 等同於 request.GET,不過其名字更加容易理解。ui

爲了代碼更加清晰可讀,推薦使用 request.query_params ,而不是 Django 中的 request.GET,這樣那夠讓你的代碼更加明顯的體現出 ----- 任何 HTTP method 類型均可能包含查詢參數(query parameters),而不單單只是 'GET' 請求。rest

.parsercode

APIView 類或者 @api_view 裝飾器將根據視圖上設置的 parser_classes 或 settings 文件中的 DEFAULT_PARSER_CLASSES 設置來確保此屬性(.parsers)自動設置爲 Parser 實例列表。orm

一般不須要關注該屬性......

若是你非要看看它裏面是什麼,能夠打印出來看看,大概長這樣:

 [<rest_framework.parsers.JSONParser object at 0x7fa850202d68>, <rest_framework.parsers.FormParser object at 0x7fa850202be0>, <rest_framework.parsers.MultiPartParser object at 0x7fa850202860>]

包含三個解析器 JSONParserFormParserMultiPartParser

注意: 若是客戶端發送格式錯誤的內容,則訪問 request.data 可能會引起 ParseError 。默認狀況下, REST framework 的 APIView 類或者 @api_view 裝飾器將捕獲錯誤並返回 400 Bad Request 響應。 若是客戶端發送的請求內容沒法解析(不一樣于格式錯誤),則會引起 UnsupportedMediaType 異常,默認狀況下會被捕獲並返回 415 Unsupported Media Type 響應。

相關文章
相關標籤/搜索