1:首先建立表,并且插入数据。我在这里插入了17条数据
表有了,数据有了,我们要把他显示在前端,这个是我们
def getstupage(request,pagenum):
#pagenum是我们前端传的数据,意思是你要哪一页的数据
#stall是我们获得的数据库内的所有数据
stall=Student.objects.all()
#分页,每一页最多4条数据,pageInator是几页,但是它的表现形式如下
pageInator=Paginator(stall,4)
print(pageInator)
# < django.core.paginator.Paginatorobjectat0x7fb0cd800cf8 >
#currage是获取你传的那一页的相关数据,然后确定Page ? of 4
currpage=pageInator.page(pagenum)
print(currpage)
# < Page 1 of 4 >
#获得?页的数据列表
studentspage=currpage.object_list
print(studentspage)
#< QuerySet[ < Student: Studentobject >, < Student: Studentobject >, < Student: Studentobject >, < Student: Studentobject >] >
#总共的页数的范围,便于前端for循环
print(pageInator.page_range)
#range(1, 5)
data={
"currectnum":int(pagenum),
"studentspage": studentspage,
"pagerange":pageInator.page_range,
"currpage":currpage
}
return render(request,"student_page.html",context=data)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://cdn.bootcss.com/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
#这是数据的列表,四条每组,前端网页请求几页,就显示第几页的
<ul>
{% for foo in studentspage %}
<li>
{{ foo.s_name }} {{ foo.s_age }}
</li>
{% endfor %}
</ul>
#以下用到bootstrap框架,是页数显示功能
#这是页数的前部分,表示后退页数
<ul class="pagination">
#Page ? of 4 这个?也就是你传过来的如果存在前面的页数,就可以点击之后超链接传值到对应的函数。
{% if currpage.has_previous %}
<li><a href="{% url 'day08:getstupage' currpage.previous_page_number %}">«</a></li>
#如果没有前面的页数,就按钮能用
{% else %}
<li class="disabled"><a href="#">«</a></li>
{% endif %}
#这个是中间部分也就是点击那个跳转到哪个,如果你点击的那个循环出来的次数=你传的值 就蓝化那个按钮
上面已经实现浏览器输入数据请求跳转到哪一页,所以在这里我们实现请求后把相应的按钮蓝化。
并且还有一个功能就是当你点击某个按钮的时候,会请求到后端,然后经过处理把不该蓝化的不蓝化显示,
请求哪个,蓝化哪个,其实只要你请求,他们两个一定是相等的。只有请求才有currentnum。所以就蓝化
{% for foo in pagerange %}
{% ifequal foo currectnum %}
<li class="active"><a href="{% url 'day08:getstupage' foo %}">{{foo}}</a> </li>
{% else %}
<li ><a href="{% url 'day08:getstupage' foo %}">{{foo}}</a> </li>
{% endifequal %}
{% endfor %}
#这个跟第一个开头的功能是一样的
{% if currpage.has_next %}
<li ><a href="{% url 'day08:getstupage' currpage.next_page_number %}">«</a></li>
{% else %}
<li class="disabled"><a href="#">»</a></li>
{% endif %}
</ul>
</body>
</html>
url大家自己配置好啦!
在此附上效果图