django paginator实现分页

欢迎访问我的博客

Abstract

Django是一个由Python写成的开放源代码的Web应用框架。围绕Django也有很多现成的功能包。
这里介绍的paginator实现分页就是其中之一

实例测试

创建好应用(这里以blog应用为例)之后,在应用的view.py中添加如下:

from django.core.paginator import Paginator
from django.core.paginator import PageNotFound, EmptyPage

from .models import Post

这里我们需要在blog首页展示所有Post,然后实现分页。

def index(request):
    # 每页post数量
    limit = 5
    posts = Posts.objects.all()
    paginator = Paginator(posts, limit)
    page = request.GET.get('page')
    try:
        posts = paginator.page(page)
    except PageNotFound:
        posts = paginator.page(1)
    except EmptyPage:
        posts = paginator.page(paginator.num_pages)

    return render(request, 'blog/index.html', context={'posts': posts})

根据上面的代码,我们在blog/index.html中进行相关的配置操作

首先展示所有post,方法和一般的一样

{% for post in posts %}
    

{{ post.title }}


{{ post.content }}

{% endfor %}

接下来在展示post的区域的下方实现分页的具体展示。 官方给出的有两种基本的实现方式

方式一:


效果如下:

django paginator实现分页_第1张图片
django paginator实现分页1

方式二(展示全部页码)


效果如下:

django paginator实现分页_第2张图片
django paginator实现分页2

参考

  • https://docs.djangoproject.com/en/1.11/topics/pagination/

你可能感兴趣的:(django paginator实现分页)