其他分享
首页 > 其他分享> > 1.5 django restframework(下)

1.5 django restframework(下)

作者:互联网

1.5 django restframework(下)

drf内置了很多便捷的功能,在接下来的课程中会给大家依次讲解下面的内容:

 

 

10. 分页

在查看数据列表的API中,如果 数据量 比较大,肯定不能把所有的数据都展示给用户,而需要通过分页展示。

在drf中为我们提供了一些分页先关类:

BasePagination,分页基类
PageNumberPagination(BasePagination) 支持 /accounts/?page=4&page_size=100 格式的分页
LimitOffsetPagination(BasePagination) 支持 ?offset=100&limit=10 格式的分页
CursorPagination(BasePagination) 支持 上一下 & 下一页 格式的分页(不常用)

10.1 APIView视图(手动处理分页)

如果编写视图是直接继承APIView,那么在使用分页时,就必须自己手动 实例化 和 调用相关方法。

1.PageNumberPagination

 

 

 

 

 

2.LimitOffsetPagination

 

 

 

3.CursorPagination

 

 

 

 

 

 

 

 

10.2 GenericAPIView派生类

如果是使用 ListModelMixinModelViewSet ,则只需要配置相关类即可,内部会自动执行相关分页的方法。

1.PageNumberPagination

 

 

2.LimitOffsetPagination

 

 

3.CursorPagination

 

 

 

 

 

11. 路由

在之前进行drf开发时,对于路由我们一般进行两种配置:

 

 

 

 

 

12. 解析器(Parser)

之前使用 request.data 获取请求体中的数据。

这个 reqeust.data 的数据怎么来的呢?其实在drf内部是由 解析器,根据请求者传入的数据格式 + 请求头来进行处理。

1.JSONParser

 

 

 

2.FormParser(必须用Fromdata数据格式传输)

 

 

 

3.MultiPartParser(适合于即提交数据又提交文件)

 

 

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
</head>
<body>
<form action="http://127.0.0.1:8000/test/" method="post" enctype="multipart/form-data">
   <input type="text" name="user" />
   <input type="file" name="img">

   <input type="submit" value="提交">

</form>
</body>
</html>

 

4.FileUploadParser(只能上传文件)

 

 

 

 

 

解析器可以设置多个,默认解析器:

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.parsers import MultiPartParser, JSONParser, FormParser


class UserView(APIView):
# parser_classes = [MultiPartParser, JSONParser, FormParser,] # 设置多个 默认就是这样的 不用写
   def post(self, request):
       print(request.content_type)
       print(request.data)

       return Response("...")

 

写在最后

至此,drf相关的知识点就全部讲完了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:1.5,分页,views,django,restframework,path,import,UserView,drf
来源: https://www.cnblogs.com/erhuoyuan/p/16391810.html