Django实现基本的页面分页

1.视图views.py

复制代码
from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage

def index(request):
    all = Blog.objects.all()               # 获取全部数据的对象

    paginator = Paginator(all,2)            # 创建对象,将all分成每页2条数据
    if request.method == 'GET':                       # 前端get传参
        page = request.GET.get('page')                  # 获取前端传进来的页数page
        try:
            info = paginator.page(page)                  # 获取所传页数的数据对象
        except PageNotAnInteger:        # 如果请求的页数不是整数, 返回第1页
            info = paginator.page(1)
        except EmptyPage:            # 如果请求的页数不在合法的页数范围内,返回结果的末尾页
            info = paginator.page(paginator.num_pages)

        return render(request,'blog/index.html',{'info':info})          #将获取的页的对象传到前端页面
复制代码

 

2.模板template代码

复制代码
<div>
    {# 如果有上一页 #}
    {% if info.has_previous %}
    {# 点击跳转到上一页,以get方式传递上一页的页码数到后端 #}
    <a class='active' href="http://139.198.16.166:8000/index/?page={{ info.previous_page_number }}">上一页</a>
    {% endif %}

    {# 显示当前页数#}
    <span class="current">第{{ info.number }}页 | 共{{ info.paginator.num_pages }}页</span>

    {# 如果有下一页 #}
    {% if info.has_next %}
    {# 同上 #}
    <a class='active' href="http://139.198.16.166:8000/index/?page={{ info.next_page_number }}">下一页</a>
    {% endif %}
</div>
复制代码

 

posted @   映辉  阅读(141)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示