什么叫做解析器?
在原生Django通过form表单发送请求的时候,只有当我们的contentType = url/encoding且符合url/encoding的编码规范的时候 , 才能通过request.POST..get["username"] 取到提交的表单数据。
当发送contentType=JSON/application-json的时候只能从 request.BODY中取值,也就是说Django 的原生request只能支持这两种发送数据的方式。
所以什么叫做解析器,就是前端传递过来的(字符串形式的)数据,后端可以将其解析成为字典,直接通过request里面的方法来使用
客户端传递的数据服务端可以解析,怎么解析的?
源码入口
from rest_framework import parsers
所以代码该这样来写局部视图
class PublishesViewSet(viewsets.ModelViewSet): queryset = Publish.objects.all() serializer_class = PublishModelSerializer parser_classes = [JSONParser, ] # 限制只有JSON格式的请求数据才能通过
则:
全局配置
"DEFAULT_PARSER_CLASSES":['rest_framework.parsers.FormParser',]