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 响应。

相关文章
相关标签/搜索