DRF之请求与响应
请求
请求指的就是Request类的对象也就是新的request对象
from rest_framework.request import Request
需掌握
1、__getattr__ 2、request.data 3、request.query_parmas--->self._request.GET-->restful规范里,请求地址中带过滤(查询)条件---》get请求地址中提交的数据在GET中,---》query_parmas:查询参数
请求的解析格式
局部配置
views.py
from rest_framework.parsers import JSONParser class PublishView(APIView): parser_classes = [JSONParser] def post(self, request): print(request.data) return Response('post请求')
全局配置
在settings.py中配置
REST_FRAMEWORK = { 'DEFAULT_PARSER_CLASSES': [ 'rest_framework.parsers.JSONParser', ], }
使用顺序
我们没有配置,也有默认配置,3个都能解析
drf有默认配置(最后)----》项目配置文件的配置(其次)----》视图类中配的(优先用)
drf的默认配置:
from rest_framework import settings
总结:一般情况下,都使用默认即可,不用配置
响应
Respone:from rest_framework.response import Response
需掌握
data=None 字符串,字典,列表
给http响应body体中内容
response对象中取出处理
status=None 响应状态码:1xx,2xx,3xx,默认是200
from rest_framework.status import HTTP_201_CREATED Response(ser.data,status=HTTP_201_CREATED)
headers=None, # 响应头 字典
了解
template_name=None, # 模板名字(不用),用浏览器访问时,可以改
exception=False, # 异常处理
content_type=None # 响应编码格式
响应格式
和请求体的解析格式一样
局部配置
from rest_framework.renderers import JSONRenderer,BrowsableAPIRenderer class BookDetailView(APIView): renderer_classes = [JSONRenderer,]
全局配置
REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( # 默认响应渲染类 'rest_framework.renderers.JSONRenderer', # json渲染器 'rest_framework.renderers.BrowsableAPIRenderer', # 浏览API渲染器 ) }