请求 Request

REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象

常用属性

  • request.data : 存放的是原来 request.body 中的所有数据
  • request.FILES:接受的文件
  • request.query_params : 与Django标准的request.GET相同,只是更换了更正确的名称而已, 也可以直接使用 request.GET

配置解析的请求编码格式

全局配置

  1. # 在 settings.py 文件中配置
  2. REST_FRAMEWORK = {
  3. 'DEFAULT_PARSER_CLASSES': [
  4. 'rest_framework.parsers.JSONParser', # 能够解析json
  5. 'rest_framework.parsers.FormParser', # 能够解析urlencoded urlencoded
  6. 'rest_framework.parsers.MultiPartParser', # 能够解析form-data
  7. ]
  8. }

局部配置

parser_classes

  1. from rest_framework.parsers import JSONParser,FormParser,MultiPartParser
  2. # 在视图类中配置
  3. parser_classes = [FormParser, ]

响应 Response

常用属性

  • response.data:响应的字典
  • response.status:HTTP响应状态码 - DRF内部提供了一套完整的状态码
  • response.template_name:模板名字(一般不会修改,默认即可)
  • response.headers:响应头,是一个字典
  • response.content_type:响应的编码方式(默认是JSON格式,无需改动)
  • response.content:经过render之后的响应数据

配置响应的编码格式

全局配置

  1. # 在 settings.py 文件中进行配置
  2. REST_FRAMEWORK = {
  3. 'DEFAULT_RENDERER_CLASSES': ( # 默认响应渲染类
  4. 'rest_framework.renderers.JSONRenderer', # json渲染器
  5. 'rest_framework.renderers.BrowsableAPIRenderer', # 浏览API渲染器
  6. )
  7. }

局部配置

renderer_classes

  1. from rest_framework.renderers import JSONRenderer,BrowsableAPIRenderer
  2. # 在视图类中配置
  3. renderer_classes=[JSONRenderer, ]