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
详细补充: