rest_framework(解析器 上)

rest_framework 解析器 对请求题数据进行解析

url
from django.conf.urls import url,include
from cmdb import views
urlpatterns = [
    url(r'^(?P<version>[v1|v2]+)/users/$',views.UsersView.as_view(),name='user'),
    url(r'^(?P<version>[v1|v2]+)/django/$',views.DjangoView.as_view(),name='ddd'),
    url(r'^(?P<version>[v1|v2]+)/parser/$',views.ParserView.as_view()),
]

视图 views.py
from rest_framework.parsers import JSONParser,FormParser
class ParserView(APIView):
    parser_classes = [JSONParser,FormParser]  #如果是这样就可以解析两种头了
    #JSONParser:表示只能解析content-type:application/json头
    #FormParser:表示只能解析content-type:application/x-www-form-urlencoded头
    def post(self,request, *args, **kwargs):
        """
        允许用户发送JSON格式数据
            a. content-type: application/json
            b. {'name':alex, age:18}
        :param request:
        :param args:
        :param kwargs:
        :return:
        """

        """
        1.获取用户的请求
        2.获取用户的请求体  记得双引号
        3.根据用户请求头和parser_classes = [JSONParser,FormParser,] 中支持的请求头进行比较
        4.JSONParser对象去请求体
        5.request.data
        """
        print(request.data)  #data表示获取解析后的结果
        return HttpResponse('ParserView')

猜你喜欢

转载自www.cnblogs.com/Liang-jc/p/9326806.html