一、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:
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