Django分页笔记

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 %}

   

  {{row.id }}

  内容

  {{row.name }}

  百家号

  {{row.date }}

  {{row.read_num }}

  {{row.comment_num }}

 

   

     

{%endfor %}

   

  {{row.id }}

  内容

  {{row.name }}

  百家号

  {{row.date }}

  {{row.read_num }}

  {{row.comment_num }}

 

   

     

{%endfor %}

注:必须是{%for row in page_of_blogs %},否则可能一直第一页

这个是底部的页面显示

修饰为:

        /*分页,底部修饰*/

.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;

}

        /*分页,底部修饰*/

.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;

}


效果:

你可能感兴趣的:(Django分页笔记)