西北乱跑娃 --- 使用django制作简单分页效果(自制)

使用django制作简单分页效果(自制)

在django网页制作过程中,面对大量的页面数据。为了更好地呈现给用户,就不得不使用分页效果。下面由我自己写的一个简单分页分享给大家。

views.py

from django.shortcuts import render, redirect, reverse
from .models import User, Student
from django.core.paginator import Paginator

def index(request):
    if request.method == 'GET':

        # 分页器1
        paginator = Paginator(Student.objects.all(), 5)    # 获取数据,设置显示数量
        page = int(request.GET.get('page', 1))    # 获取url参数,默认第一页
        students = paginator.page(page)          # 处理数据

        # # 分页器2
        # page = int(request.GET.get('page')) if request.GET.get('page') else 1
        # per_page = int(request.GET.get('per_page')) if request.GET.get('per_page') else 5
        # start = per_page*(page-1)
        # end = per_page*page
        # page_info = students[start:end]
		
        total = len(Student.objects.all())		# 获取数据库中所有信息总个数
        if total % 5 == 0:
            page_total = int(total / 5)
        else:
            page_total = int(total / 5) + 1				# 获取总页
        context = {
            'students': students,
            'total': total,
            'page_total': page_total,
            'page': page,
        }
        return render(request, 'index.html', context=context)

index.html

<nav aria-label="Page navigation">
     <ul class="pagination">
        {% if page > 1 %}
        <li>
            <a href="?page={{ page|add:-1 }}" aria-label="Previous">
                <span aria-hidden="true">上一页</span>
            </a>
        </li>
        {% else %}
        <li>
            <span aria-hidden="true">上一页</span>
        </li>
          {% endif %}

        <li><a href="?page=1">首页</a></li>
        <li><a href="?page={{ page }}">第{{ page }}页</a></li>
        <li><a href="?page={{ page_total }}">尾页</a></li>

        {% if page < page_total %}
        <li>
            <a href="?page={{ page|add:1 }}" aria-label="Next">
                <span aria-hidden="true">下一页</span>
            </a>
        </li>
        {% else %}
        <li>
            <span aria-hidden="true">下一页</span>
        </li>
          {% endif %}

          <li><span>共{{ total }}条</span></li>
          <li><span>共{{ page_total }}页</span></li>
      </ul>
 </nav>

最终效果:
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西北乱跑娃

万水千山总是情,犒赏一下行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值