Django框架(九、分页功能)

本文介绍了Django框架中的分页功能,包括Paginator对象、page对象及内置分页的使用。详细讲解了如何扩展Django内置分页,通过自定义CustomPaginator类并实现分页功能的补充。此外,还展示了如何使用BootStrap进行样式美化,提供了一个自定义插件式的分页解决方案,使得分页效果更加灵活且易于调用。
摘要由CSDN通过智能技术生成

一、Django分页功能

1.Paginator对象

方法 描述
per_page 每页显示条目数量
count 数据总个数
num_pages 总页数
page_range 总页数的索引范围,如: (1,10),(1,200)
page page对象

2.page对象

方法 描述
has_next 是否有下一页
next_page_number 下一页页码
has_previous 是否有上一页
previous_page_number 上一页页码
object_list 分页之后的数据列表
number 当前页
paginator paginator对象

3.内置分页功能

views.py文件

from django.shortcuts import render
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

User_list = []
for i in range(1,101):
    item = {
   "user"+str(i):i}
    User_list.append(item)


def index1(request):
    current_page = request.GET.get("p")
    paginator = Paginator(User_list, 10)
    try:
        # 这里将page对象定于为 ports
        ports = paginator.page(current_page)
    except PageNotAnInteger:
        ports = paginator.page(1)
    except EmptyPage:
        ports = paginator.page(paginator.num_pages)
    return render(request,"index1.html", {
   "ports":ports})
views.py

index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
   
            padding: 0;
            margin: 0;
        }

    </style>
</head>
<body>


{
   % for user in ports.object_list %}
    <ul>{
   {
    user }}</ul>
{
   % endfor %}

<div>
    {
   % if ports.has_previous %}
        <a href="/index1.html/?p={
   { ports.previous_page_number }}">上一页</a>
        {
   % else %}
        <a href="#">首页</a>
    {
   % endif %}
    
    {
   % if ports.has_next %}
        <a href="/index1.html/?p={
   { ports.next_page_number }}">下一页</a>
        {
   % else %}
        <a href="#">尾页</a>
    {
   % endif %}
</div
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值