概述
在DRF中,引入了一个Request
和Response
对象进行请求和响应,这两个对象分别继承于Djaong中常规的HttpRequest
和SimpleTemplateResponse
,相比其父类,它们提供了更灵活的请求解析和响应内容。
1.Request
Request
类继承于Django中常规的HttpRequest
,相比HttpRequest
增加了灵活的请求解析和请求认证的支持。
1.1.解析请求(Request Parsing)
REST框架中提供了多种用于解析request的类,如JSONParser
,FormParser
等等,Request对象可以像处理form数据一样处理JSON数据和其他媒体类型的数据。经常我们会将请求解析为JSON数据的形式进行响应。
DRF默认使用了JSONParser
类进行解析,因此我们在返回JSON数据时不需要做任何工作,当然DRF中还提供了其他解析类,可在配置文件中进行配置(不过貌似没这个必要):
REST_FRAMEWORK = {
'DEFAULT_PARSER_CLASSES': (
'rest_framework.parsers.JSONParser',
)
}
Request
中和请求解析相关的属性有以下三个:
request.data
request.data
是Request对象的核心属性,它会返回请求体中所有的解析内容。能够处理任何数据,如文件和表单数据并且对适用于POST、PUT、PATCH方式请求。
request.query_params
该属性会返回请求体中的查询参数,如假设通过GET方式请求h