前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django分页笔记

Django分页笔记

作者头像
Centy Zhao
发布2019-12-26 13:43:29
3160
发布2019-12-26 13:43:29
举报
文章被收录于专栏:icecream小屋icecream小屋

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">&#xe605;

<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">&#xe640;

{%endfor %}

<div class="layui-unselect layui-form-checkbox" lay-skin="primary" data-id='2'><i class="layui-icon">&#xe605;

<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">&#xe640;

{%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> 效果:
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档