如何在 Django 中使用 URL 分页?
在 Django 中,我们可以使用 Django 自带的分页模块(django.core.paginator)来实现 URL 分页。
下面是一个简单的例子:
- 在 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})
- 在模板文件中,可以直接通过对象的属性获取分页信息,例如对象的属性包括 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 分页。
相关文章