APIView

1、继承自view

2、提供了rest_framework自己的request对象,不是django里的HttpRequest对象

3.返回了est_framework自己的response队形,不时django里的HttpResponset对象

4.并且提供了权限、认证、限流等功能

View获取数据的方式

GET:

request.GET

POST:

request.POST  #获取表单数据

request.body    #获取json数据

APIView获取数据的方式

GET:

request.query_params

POST:

request.data    #既可以获取json也可以获取表单

 

1)测试request:GET和POST方法

#测试APIView的request
from rest_framework.views import APIView
from django import http

class BookAPIView(APIView):
    def get(self,request):
        print(request.query_params)
        return http.HttpResponse('haha')

    def post(self,request):
        print((request.data))
        return http.HttpResponse('heihei')

 --------------------------------------------------------------------------------------------------------------------------------------------

返回数据的方式

之前返回数据的方式

HttpResponse 返回文本数据

JsonResponse 返回json数据

现在可以使用response返回各种数据和状态

并且提供了一套状态码,可以配合状态码使用

#测试APIView的request
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status

class BookAPIView(APIView):
    def get(self,request):
        print(request.query_params)
        return Response({'姓名':'李四'},status=status.HTTP_200_OK)  #返回字典

    def post(self,request):
        print((request.data))
        return Response([{'姓名':'张三'},{'年龄':'30'}],status=status.HTTP_201_CREATED)  #返回列表

 

 

 
posted @ 2020-09-18 09:35  亦木121  阅读(156)  评论(0)    收藏  举报