DRF之请求与响应
请求与响应
控制请求编码格式
drf配置文件默认可以解析全部编码格式,drf配置文件路径:
from rest_framework import settings
全局控制
在配置文件中加入:
REST_FRAMEWORK = {
'DEFAULT_PARSER_CLASSES': [
'rest_framework.parsers.JSONParser', # 解析json
'rest_framework.parsers.FormParser', # 解析urlencoded
'rest_framework.parsers.MultiPartParser', # 解析form-data
],
}
三个参数代表能接收的编码格式,注释掉其中一个代表前端用该编码格式传的数据不会被接收到。
局部控制
在视图类中配置:
from rest_framework.parsers import JSONParser, FormParser, MultiPartParser
class BookView(APIView):
parser_classes = [
JSONParser, # 解析json
FormParser, # 解析urlencoded
MultiPartParser # 解析form-data
]
有哪个就代表可以解析哪些格式的数据。
优先级:视图类 > 项目配置文件 > drf配置文件
响应
drf的响应对象有着众多属性,Response路径:
from rest_framework.response import Response
"""重要参数"""
data=None, # 要序列化的数据,字典,列表,字符串
status=None, # http响应状态码
headers=None, # 响应头
"""其他参数"""
template_name=None, # 模板名字,渲染页面效果
content_type=None # 响应数据的格式,默认为json格式
全局控制响应编码
配置文件中添加
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': [
'rest_framework.renderers.JSONRenderer', # json格式
'rest_framework.renderers.BrowsableAPIRenderer', # 浏览器格式
],
}
局部生效
视图类中添加:
from rest_framework.renderers import JSONRenderer, BrowsableAPIRenderer
class BookView(APIView):
renderer_classes = [JSONRenderer,BrowsableAPIRenderer]