Django实现翻页的示例代码

下面我将为你详细讲解Django实现翻页的示例代码的完整攻略。

首先,在Django中,常用的翻页插件有三种:django-pure-pagination、django-pagination和django-endless-pagination。其中,django-pure-pagination是最基础的一种插件,用于简单的分页操作。django-pagination功能更加丰富,可以支持分页显示和前后导航条的自定义。而django-endless-pagination则可以实现无限滚动式的翻页方式。接下来,我们将以django-pure-pagination为例,在Django中实现翻页的功能。

示例一:

步骤1:安装django-pure-pagination插件

可以使用pip安装该插件,在终端运行下述命令即可:

pip install django-pure-pagination

步骤2:配置settings.py文件

在INSTALLED_APPS中添加'django_pure_pagination',并设置分页样式:

INSTALLED_APPS = [
    ...
    'django_pure_pagination',
    ...
]

PAGINATION_SETTINGS = {
    'PAGE_RANGE_DISPLAYED': 3,
    'MARGIN_PAGES_DISPLAYED': 2,
    'SHOW_FIRST_PAGE_WHEN_INVALID': True,
}

步骤3:编写视图函数views.py

在视图函数中通过paginator对象进行分页操作,示例代码如下:

from django.core.paginator import Paginator
from django.shortcuts import render

def book_list(request):
    book_list = Book.objects.all()
    paginator = Paginator(book_list, 10) # 每页显示10条数据
    page = request.GET.get('page')
    books = paginator.get_page(page)

    context = {'books': books}
    return render(request, 'book_list.html', context)

步骤4:编写模板文件book_list.html

在模板文件中,可以通过模板标签{% autopaginate books %}自动对books对象进行分页,同时通过{% paginate %}模板标签实现翻页功能,示例代码如下:

{% extends 'base.html' %}

{% block content %}
    {% autopaginate books %}
    <ul>
        {% for book in books %}
        <li>{{ book.name }}</li>
        {% endfor %}
    </ul>

    {% paginate books %}
{% endblock %}

示例二:

步骤1:安装django-pagination插件

使用pip安装该插件,在终端运行下述命令即可:

pip install django-pagination

步骤2:配置settings.py文件

在INSTALLED_APPS中添加'django.contrib.humanize'和'pagination',示例代码如下:

INSTALLED_APPS = [
    ...
    'django.contrib.humanize',
    'pagination',
    ...
]

步骤3:编写视图函数views.py

在视图函数中通过DiggPaginator对象进行分页操作,并使用get_context()方法返回分页上下文,示例代码如下:

from django.shortcuts import render
from django.contrib.auth.models import User
from pagination.paginator import DiggPaginator

def user_list(request):
    user_list = User.objects.all()
    paginator = DiggPaginator(user_list, 10, body=5, padding=2, margin=1)
    page = request.GET.get('page')
    users = paginator.get_page(page)
    context = paginator.get_context()
    context.update({'users': users})
    return render(request, 'user_list.html', context)

步骤4:编写模板文件user_list.html

在模板文件中,可以通过模板标签{% autopaginate users %}自动对users对象进行分页,同时通过{% paginate %}模板标签实现翻页功能,示例代码如下:

{% extends 'base.html' %}

{% block content %}
    {% autopaginate users %}
    <ul>
        {% for user in users %}
        <li>{{ user.username }}</li>
        {% endfor %}
    </ul>

    {% paginate users %}
{% endblock %}

至此,我们分别使用django-pure-pagination和django-pagination两款插件演示了Django实现翻页的示例代码攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django实现翻页的示例代码 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django之Model操作

    一、字段 AutoField(Field) – int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) – bigint自增列,必须填入参数 primary_key=True 注:当model中如果没有自增列,则自动会创建一个列名为id的列 from django.db import models cla…

    Django 2023年4月13日
    00
  • Django与MVC

    Django是遵循MVC设计模式的一个框架:MVC(Model,View,Controller);模型,视图,控制器:如图: Django其实是一个MTV的模型:(Model,Template,VIew)模型,模板,视图  

    2023年4月9日
    00
  • Django Admin 后台Admin继承UserAdmin增加用户密码不显示明文和用户登录不了的解决方法

    Django后台Admin继承UserAdmin增加用户不显示明文方法 1.在 models.py 中用户表 # 导包规范-1.Python标准模块 from django.db import models from django.contrib.auth.models import AbstractUser # AbstractUser继承原用django…

    Django 2023年4月13日
    00
  • 简单了解Django模板的使用

    以下是详细讲解“简单了解Django模板的使用”的完整攻略。 一、什么是Django模板 Django模板是Django框架中的一个重要组件,它用于将数据生成html文档。模板将数据与html文档分开处理,使得前端和后端可以分别进行编写和维护。 二、Django模板使用方法 1.创建模板文件 在Django项目中,通常将所有模板放在一个模板文件夹下。创建模板…

    Django 2023年5月16日
    00
  • Django链接mysql数据库报错1064

    D:\PycharmProjects\autotest>python manage.py makemigrations django.db.utils.ProgrammingError: (1064, “You have an error in your SQL syntax;check the manual that corresponds to y…

    Django 2023年4月10日
    00
  • django框架之drf:04、序列化器常用字段及参数,序列化器高级用法之source、定制字段数据的两种方法、多表关联反序列化的保存、ModelSerializer的使用

    Django框架之drf 目录 Django框架之drf 一、序列化器常用字段及参数 1、常用字段 2、常用字段参数 3、字段参数针对性分类 二、序列化器高级用法之source 1、定制字段名 三、定制字段数据的两种的方法 1、在序列化器类中定制 2、在模型表中定制 四、多表关联反序列化保存 1、新增接口 2、修改接口 五、反序列化字段校验(总结) 六、Mo…

    2023年4月10日
    00
  • python3-django+uwsgi+supervisor+nginx跳坑指南(记录) 出现:unix:///tmp/supervisor.sock no such file

      首先运行django项目:在项目目录内: python manage.py runserver 0.0.0.0:8000 外部服务器访问:http://www.xxx.com:8000/ 可以正常运行  ###参考:https://blog.51cto.com/chenx1242/1859830 如果不对,不太对?这是因为django项目里设置了ALLO…

    Django 2023年4月11日
    00
  • Django自定义权限及用户分组

    下面是关于Django自定义权限及用户分组的完整攻略,包含了两条示例说明。 一、定义自己的权限 在Django中,每一个权限都是一个Permission对象,而权限的分类则是Permission对象的Groups。我们可以通过继承Django的 PermissionMixin 类来在我们的模型中定义自己的权限,并将其归类到我们自定义的 Group 对象中。 …

    Django 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部