标签:comment except 过滤 客户 记录 压力 类对象 获取 列表
作用:数据库有几千万条数据,这些数据需要展示,我们不可能直接从数据库把数据全部读取出来,这样会给内存造成特别大的压力,有可能还会内存溢出,所以我们希望一点一点的取,那展示的时候也是一样的,总是要进行分页显示,我们之前自己都写过分页。
from django.core.paginator import Paginator
goods_list = Goods.objects.all().order_by(‘id‘)
paginator = Paginator(goods_list, 2)
序号 | 属性名 | 说明 |
---|---|---|
1 | num_pages | 返回分页之后的总页数 |
2 | page_range | 返回分页后的页码列表 |
3 | count | 需要分页的总记录数 |
序号 | 方法名 | 说明 |
---|---|---|
1 | get_page(self, number) | 返回第number页的page类实例对象 |
序号 | 属性名 | 说明 |
---|---|---|
1 | number | 返回当前页的页码 |
2 | object_list | 返回当前页的数据查询集 |
3 | paginator | 返回对应的Paginator类对象 |
from rest_framework.response import Response
from rest_framework.views import APIView
from school.serializers import *
class StudentsAPIView(APIView):
def get(self, request):
page_number = request.GET.get(‘page‘, 1) # 获取客户端发送的页码,默认为1
page_size = request.GET.get(‘page_size‘, 2) # 获取客户端发送的每页数量,默认为1
try:
page_number = int(page_number) # 处理页码, 过滤无效的数据
except:
page_number = 1
goods_set = Student.objects.all().order_by(‘id‘)
paginator = Paginator(goods_set, page_size) # 得到分页器对象
page = paginator.get_page(page_number) # 得到当前页码对象
ser = StudentSerializer(page.object_list, many=True)
return Response(ser.data)
标签:comment except 过滤 客户 记录 压力 类对象 获取 列表
原文地址:https://www.cnblogs.com/ziheng8/p/14829929.html