请求 Request
REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象
常用属性
request.data
: 存放的是原来request.body
中的所有数据request.FILES
:接受的文件request.query_params
: 与Django标准的request.GET
相同,只是更换了更正确的名称而已, 也可以直接使用request.GET
配置解析的请求编码格式
全局配置
# 在 settings.py 文件中配置
REST_FRAMEWORK = {
'DEFAULT_PARSER_CLASSES': [
'rest_framework.parsers.JSONParser', # 能够解析json
'rest_framework.parsers.FormParser', # 能够解析urlencoded urlencoded
'rest_framework.parsers.MultiPartParser', # 能够解析form-data
]
}
局部配置
parser_classes
from rest_framework.parsers import JSONParser,FormParser,MultiPartParser
# 在视图类中配置
parser_classes = [FormParser, ]
响应 Response
常用属性
response.data
:响应的字典response.status
:HTTP响应状态码
- DRF内部提供了一套完整的状态码response.template_name
:模板名字(一般不会修改,默认即可)response.headers
:响应头,是一个字典
response.content_type
:响应的编码方式(默认是JSON格式,无需改动)response.content
:经过render
之后的响应数据
配置响应的编码格式
全局配置
# 在 settings.py 文件中进行配置
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': ( # 默认响应渲染类
'rest_framework.renderers.JSONRenderer', # json渲染器
'rest_framework.renderers.BrowsableAPIRenderer', # 浏览API渲染器
)
}
局部配置
renderer_classes
from rest_framework.renderers import JSONRenderer,BrowsableAPIRenderer
# 在视图类中配置
renderer_classes=[JSONRenderer, ]