1。在views.py视图里面导入
from django.core.paginatorimport Paginator,EmptyPage,PageNotAnInteger
2.定义函数
def admin_yqinfor(request):
cursor.execute("select * from baijiahao ")
# bjh_list=models.baijiahao.objects.raw("select * from baijiahao ")
bjh_list= cursor.fetchall()
paginator_obj = Paginator(bjh_list, 10)
collapse = ["collapseOne", "collapseTwo", "collapseThree", "collapseFour", 'collapseFive',
"collapseSix", "collapseSeven", "collapseEight", "collapseNine", 'collapseTen', ]
zip_data =zip(bjh_list, collapse)
print(zip_data)
# print(bjh_list[id])
if request.method =='GET':
page = request.GET.get("page")
try:
page_of_blogs = paginator_obj.get_page(page)
except PageNotAnInteger:
page_of_blogs = paginator_obj.page(1)
except EmptyPage:
page_of_blogs = paginator_obj.page(paginator_obj.num_pages)
current_page_num = page_of_blogs.number
page_range =list(range(max(current_page_num -3, 1), current_page_num)) \
+list(range(current_page_num, min(current_page_num +3, paginator_obj.num_pages) +1))
if page_range[0] -1 >=2:
page_range.insert(0, '....')
if paginator_obj.num_pages - page_range[-1] >=2:
page_range.append('....')
if page_range[0] !=1:
page_range.insert(0, 1)
if page_range[-1] != paginator_obj.num_pages:
page_range.append(paginator_obj.num_pages)
return render(request,'admin_yqinfor.html',{'bjh_list':bjh_list,'page_of_blogs':page_of_blogs,
'page_range':page_range,'zip_data':zip_data})
3.在HTML里面显示
{%for row in page_of_blogs %}
<div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">
<td name="id">{{row.id }}
<td><a href="../content/?id={{row.id }}" target="_blank">内容
<td>{{row.name }}
<td>百家号
<td>{{row.date }}
<td>{{row.read_num }}
<td>{{row.comment_num }}
<td class="td-manage">
<a title="删除" onclick="member_del(this,'要删除的id')" href="javascript:;">
<i class="layui-icon">
{%endfor %}
<div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">
<td name="id">{{row.id }}
<td><a href="../content/?id={{row.id }}" target="_blank">内容
<td>{{row.name }}
<td>百家号
<td>{{row.date }}
<td>{{row.read_num }}
<td>{{row.comment_num }}
<td class="td-manage">
<a title="删除" onclick="member_del(this,'要删除的id')" href="javascript:;">
<i class="layui-icon">
{%endfor %}
注:必须是{%for row in page_of_blogs %},否则可能一直第一页
<div class="paginator" align="middle">
<ul class="pagination">
{%if page_of_blogs.has_previous%}
<a href="?page={{page_of_blogs.previous_page_number}}" aria-label="Previous">
<span aria-hidden="true">前页
{%else%}
<span aria-hidden="true">前页
{%endif%}
{%for page_num in page_range%}
{%if page_num ==page_of_blogs.number%}
<li class="active"> <a href="?page={{page_num }}">{{page_num }}
{%else%}
{%if page_num =='....'%}
<li > <span>{{page_num }}
{%else%}
<li > <a href="?page={{page_num }}">{{page_num }}
{%endif%}
{%endif%}
{%endfor %}
{%if page_of_blogs.has_next %}
<a href="?page={{page_of_blogs.next_page_number}}" aria-label="Next">
<span aria-hidden="true">后页
{%else%}
<span aria-hidden="true">后页
{%endif%}
</div>
这个是底部的页面显示
修饰为:
/*分页,底部修饰*/
.pagination {
display:inline-block;
padding-left:0;
margin:20px 0;
border-radius:4px;
}
.pagination >li {
display:inline;
}
.pagination >li >a,
.pagination >li >span {
position:relative;
float:left;
padding:6px 12px;
margin-left: -1px;
line-height:1.42857143;
color:#337ab7;
text-decoration:none;
background-color:#fff;
border:1px solid #ddd;
}
.pagination >li:first-child >a,
.pagination >li:first-child >span {
margin-left:0;
border-top-left-radius:4px;
border-bottom-left-radius:4px;
}
.pagination >li:last-child >a,
.pagination >li:last-child >span {
border-top-right-radius:4px;
border-bottom-right-radius:4px;
}
.pagination >li >a:hover,
.pagination >li >span:hover,
.pagination >li >a:focus,
.pagination >li >span:focus {
z-index:2;
color:#23527c;
background-color:#eee;
border-color:#ddd;
}
.pagination > .active >a,
.pagination > .active >span,
.pagination > .active >a:hover,
.pagination > .active >span:hover,
.pagination > .active >a:focus,
.pagination > .active >span:focus {
z-index:3;
color:#fff;
cursor:default;
background-color:#337ab7;
border-color:#337ab7;
}
.pagination > .disabled >span,
.pagination > .disabled >span:hover,
.pagination > .disabled >span:focus,
.pagination > .disabled >a,
.pagination > .disabled >a:hover,
.pagination > .disabled >a:focus {
color:#777;
cursor:not-allowed;
background-color:#fff;
border-color:#ddd;
}
.pagination-lg >li >a,
.pagination-lg >li >span {
padding:10px 16px;
font-size:18px;
line-height:1.3333333;
}
.pagination-lg >li:first-child >a,
.pagination-lg >li:first-child >span {
border-top-left-radius:6px;
border-bottom-left-radius:6px;
}
.pagination-lg >li:last-child >a,
.pagination-lg >li:last-child >span {
border-top-right-radius:6px;
border-bottom-right-radius:6px;
}
.pagination-sm >li >a,
.pagination-sm >li >span {
padding:5px 10px;
font-size:12px;
line-height:1.5;
}
.pagination-sm >li:first-child >a,
.pagination-sm >li:first-child >span {
border-top-left-radius:3px;
border-bottom-left-radius:3px;
}
.pagination-sm >li:last-child >a,
.pagination-sm >li:last-child >span {
border-top-right-radius:3px;
border-bottom-right-radius:3px;
}
</style>
/*分页,底部修饰*/
.pagination {
display:inline-block;
padding-left:0;
margin:20px 0;
border-radius:4px;
}
.pagination >li {
display:inline;
}
.pagination >li >a,
.pagination >li >span {
position:relative;
float:left;
padding:6px 12px;
margin-left: -1px;
line-height:1.42857143;
color:#337ab7;
text-decoration:none;
background-color:#fff;
border:1px solid #ddd;
}
.pagination >li:first-child >a,
.pagination >li:first-child >span {
margin-left:0;
border-top-left-radius:4px;
border-bottom-left-radius:4px;
}
.pagination >li:last-child >a,
.pagination >li:last-child >span {
border-top-right-radius:4px;
border-bottom-right-radius:4px;
}
.pagination >li >a:hover,
.pagination >li >span:hover,
.pagination >li >a:focus,
.pagination >li >span:focus {
z-index:2;
color:#23527c;
background-color:#eee;
border-color:#ddd;
}
.pagination > .active >a,
.pagination > .active >span,
.pagination > .active >a:hover,
.pagination > .active >span:hover,
.pagination > .active >a:focus,
.pagination > .active >span:focus {
z-index:3;
color:#fff;
cursor:default;
background-color:#337ab7;
border-color:#337ab7;
}
.pagination > .disabled >span,
.pagination > .disabled >span:hover,
.pagination > .disabled >span:focus,
.pagination > .disabled >a,
.pagination > .disabled >a:hover,
.pagination > .disabled >a:focus {
color:#777;
cursor:not-allowed;
background-color:#fff;
border-color:#ddd;
}
.pagination-lg >li >a,
.pagination-lg >li >span {
padding:10px 16px;
font-size:18px;
line-height:1.3333333;
}
.pagination-lg >li:first-child >a,
.pagination-lg >li:first-child >span {
border-top-left-radius:6px;
border-bottom-left-radius:6px;
}
.pagination-lg >li:last-child >a,
.pagination-lg >li:last-child >span {
border-top-right-radius:6px;
border-bottom-right-radius:6px;
}
.pagination-sm >li >a,
.pagination-sm >li >span {
padding:5px 10px;
font-size:12px;
line-height:1.5;
}
.pagination-sm >li:first-child >a,
.pagination-sm >li:first-child >span {
border-top-left-radius:3px;
border-bottom-left-radius:3px;
}
.pagination-sm >li:last-child >a,
.pagination-sm >li:last-child >span {
border-top-right-radius:3px;
border-bottom-right-radius:3px;
}
</style>
效果:
网友评论