1、创建pager.py文件,针对翻页进行函数书写


class PageInfo(object):
# current_page 当前页数
# all_count 所有行
# per_page 每页的行数
# show_page 控制只显示11个按钮
def __init__(self, current_page, all_count, per_page, base_url, show_page=5):
try:
self.current_page = int(current_page)
except Exception as e:
self.current_page = 1
self.per_page = per_page a, b = divmod(all_count, per_page) if b:
a = a + 1
self.all_pager = a
self.base_url = base_url
self.show_page = show_page
print(a, b,per_page)
def start(self):
return (self.current_page - 1) * self.per_page def end(self):
return self.current_page * self.per_page def pager(self):
page_list = [] # 如果总页数小于11
if self.all_pager < self.show_page:
begin = 1
stop = self.all_pager + 1
# 如果总页数大于11
else:
# 如果当前页小于等于5,一直保持1,11
if self.current_page <= 2:
begin = 1
stop = self.show_page + 1
else:
# 如果当前页大于所有页
if self.current_page + 2 > self.all_pager:
begin = self.all_pager - self.show_page + 1
stop = self.all_pager + 1
else:
begin = self.current_page - 2
stop = self.current_page + 2 + 1 if self.current_page > 1:
prve = "<li><a href='%s/?page=%s'>上一页 </a></li> " % (self.base_url,self.current_page - 1,)
else:
prve = "<li><a href='#'>上一页 </a> </li>"
page_list.append(prve)
fist = "<li><a href='%s/?page=1'>首页 </a></li> " % (self.base_url,)
page_list.append(fist)
for i in range(begin, stop):
if i == self.current_page:
temp = "<li class='active' ><a href='%s/?page=%s'> %s </a></li> " % (self.base_url, i, i)
else:
temp = "<li><a href='%s/?page=%s'> %s </a></li> " % (self.base_url, i, i)
page_list.append(temp)
end = "<li><a href='%s/?page=%s'>尾页 </a> </li>" % (self.base_url,self.all_pager,)
page_list.append(end) if self.current_page < self.all_pager:
nex = "<li><a href='%s/?page=%s'>下一页 </a> </li>" % (self.base_url,self.current_page + 1,)
else:
nex = "<li><a href='#'>下一页 </a></li>"
page_list.append(nex)
return ''.join(page_list)
2、创建函数,调用翻页函数


def userInfo(request):
all_count = models.userInfo.objects.all().count()
print(all_count)
page_info = PageInfo(request.GET.get('page'), all_count, 10, '/userInfo')
user_list = models.userInfo.objects.all()[page_info.start():page_info.end()] return render(request, 'User/userInfo.html', {'user_list': user_list, 'page_info': page_info})
3、前端html展示


{% extends 'layout.html' %} {% block css %}
<style> </style>
{% endblock %} {% block table %}
<div style="margin: 10px 15px;">
<a class="btn btn-primary" href="/add_userInfo/">添加</a>
</div>
<table class="table table-condensed table-hover table-bordered">
<thead>
<tr>
<th>ID</th>
<th>用户名</th>
<th>姓名</th>
<th>性别</th>
<th>生日</th>
<th>邮箱</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for row in user_list %}
<tr>
<td>{{ row.id }}</td>
<td>{{ row.user }}</td>
<td >{{ row.name }}</td>
<td >{{ row.sex }}</td>
<td >{{ row.birthday }}</td>
<td >{{ row.email }}</td>
<td>
<a href="/edit_userInfo/?tid={{ row.id }}">编辑</a>
<a href="/del_userInfo/?tid={{ row.id }}">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
</table> <nav aria-label="Page navigation">
<ul class="pagination">
<li>
<a href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
{{ page_info.pager|safe}}
<li>
<a href="#" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</ul>
</nav> {% endblock %} {% block js %}
<script src="/static/jquery.min.js"></script>
<script></script> {% endblock %}
4、页面展示