如何在 Django 中使用 URL 分页?

2023-04-11 00:00:00 django 分页 如何在

在 Django 中,我们可以使用 Django 自带的分页模块(django.core.paginator)来实现 URL 分页。

下面是一个简单的例子:

  1. 在 views.py 文件中,定义视图函数,获取需要分页的数据,并通过 Paginator 对象分页处理:
from django.core.paginator import Paginator
from django.shortcuts import render

def my_view(request):
    data_list = ['pidancode.com', '皮蛋编程', 'python', 'Django', '网站开发']
    paginator = Paginator(data_list, 2)  # 每页显示 2 条数据
    page = request.GET.get('page')  # 获取当前页码
    data = paginator.get_page(page)  # 获取该页的数据
    return render(request, 'my_template.html', {'data': data})
  1. 在模板文件中,可以直接通过对象的属性获取分页信息,例如对象的属性包括 number(当前页码)、has_previous(是否有上一页)、previous_page_number(上一页码)、has_next(是否有下一页)、next_page_number(下一页码)、paginator(分页器对象)、object_list(当前页面的数据列表)等:
{% if data.has_previous %}
    <a href="?page={{ data.previous_page_number }}">上一页</a>
{% endif %}

{{ data.number }}

{% if data.has_next %}
    <a href="?page={{ data.next_page_number }}">下一页</a>
{% endif %}

{% for item in data.object_list %}
    <p>{{ item }}</p>
{% endfor %}

在上面的例子中,我们将每页显示的数据条数设置为 2 条,通过 GET 请求的方式传递当前页码,然后在视图函数中使用 Paginator 对象和当前页码获取该页的数据。最后将数据传递到模板中,在模板中使用分页对象的属性渲染页面,即可实现 URL 分页。

相关文章