django分页查询

from django.core.paginator import Paginator,PageNotAnInteger,EmptyPage
def publishArticles(request):
    if(request.method=="GET"):
        page = request.GET['page']
        pageSize = 10
        listArticle = Article.objects.all()
        paginator = Paginator(listArticle, pageSize) # 每页显示10条
        response = {}
        response['total'] = paginator.count # 获取总页数
        try:
            articles = paginator.page(page) # paginator.page(page)获取第page页
        except PageNotAnInteger:
            articles = paginator.page(1) # 如果请求页数不是整数,返回第一页
        except EmptyPage:
            articles = paginator.page(paginator.num_pages)  # 如果请求的页数不在范围内则返回最后一页
        print(articles)
        response['list'] = json.loads(serializers.serialize('json',articles))
        return JsonResponse(response) 

分页查询按这个套路来就行了,如果想了解更多可以百度paginator

原文地址:https://www.cnblogs.com/daicw/p/12124567.html