Django Paginator分页器

如何实现在django中实现分页效果,我使用的是django自带的分页器paginator
具体是使用办法是这样的首先引用from django.core.paginator import Paginator
首先得到你需要实现分页的文章:article_list = Article.objects.all()
之后规定一个变量paginator用这个变量去储存分页结果
paginator = Paginator(article_list, 5)
这里Paginator中第一个参数是需要分页的目标,第二个参数是你想要多少个目标分成一页
这里是首先我的目标是article_list之后我需要每5篇文章分成一页

之后在django中我们还需要去获取到每一页的url
page = int(request.GET.get('page',1))
页数page使用request.GET的方法获取,get的第一个参数是page,如果没有获取到,自动获取第1页
article_list = paginator.page(page)

然后得到了page页对应的文章列表

 

代码展示:

# 定义首页方法
def index(request):
    try:
        article_list = Article.objects.all()
        article_list = getPage(request,article_list)
    except Exception as e:
        logger.error(e)
    return render(request, 'index.html', locals())


# 重构分页代码
def getPage(request, article_list):
    paginator = Paginator(article_list, 5)
    try:
        page = int(request.GET.get('page', 1))
        article_list = paginator.page(page)
    except (EmptyPage, InvalidPage, PageNotAnInteger):
        article_list = paginator.page(1)
    return article_list

 

详细补充:

 

posted @ 2019-11-21 15:10  hoo_o  阅读(230)  评论(0编辑  收藏  举报