drf 深入了解 request(请求)
总结最常使用的请求解析
REST framework的请求对象提供灵活的请求解析,允许你以与通常处理表单数据相同的方式使用JSON数据或其他媒体类型处理请求。
.data
最常使用的请求方式- 应用于 post, files(个人比较不推荐在使用文件时使用),put, patch
request.data
返回请求正文的解析内容。这与标准的 request.POST
和 request.FILES
属性类似,除了下面的:
- 它包括所有解析的内容, 包括 文件或非文件 输入。
- 它支持解析除
POST
之外的HTTP方法的内容,这意味着你可以访问PUT
和PATCH
请求的内容。 - 它支持REST framework灵活的请求解析,而不仅仅支持表单数据。 例如,你可以以与处理传入表单数据相同的方式处理传入的JSON数据。
.query_params
通常使用在get请求中,
request.query_params
是request.GET
的一个更准确的同义词。
为了让你的代码清晰明了, 我们建议使用 request.query_params
而不是Django标准的request.GET
。这样做有助于保持代码库更加正确和明了——任何HTTP方法类型可能包括查询参数,而不仅仅是GET
请求。
.parsers
你通常并不需要访问这个属性。
如果客户端发送格式错误的内容,则访问
request.data
可能会引发ParseError
。默认情况下REST framework的APIView
类或@api_view
装饰器将捕获错误并返回400 Bad Request
响应。 如果客户端发送具有无法解析的呃逆荣类型的请求,则会引发UnsupportedMediaType
异常, 默认情况下会捕获该异常并返回415 Unsupported Media Type
响应。
APIView
类或@api_view
装饰器将根据view中设置的parser_classes
集合或基于DEFAULT_PARSER_CLASSES
设置,确保此属性自动设置为Parser
实例列表。
其他有内容请参考提供的官方文档