美文网首页
Django分页笔记

Django分页笔记

作者: 偷了月光的猫 | 来源:发表于2019-02-21 15:32 被阅读3次

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>

    效果:

  • 相关文章

    • 分页-Django REST框架

      分页-Django REST框架 pagination.py 分页 Django提供了几个类来帮助您管理分页数据-...

    • Django-分页

      django-分页 一.django自带的分页 以读取UserInfo表为例 1.导入模块 from django...

    • django 使用原生sql及分页

      python3 django 使用原生sql及分页 django 使用原生sql及分页,类似于django res...

    • Django分页笔记

      1。在views.py视图里面导入 from django.core.paginatorimport Pagina...

    • 分页

      分页 分页库Paginator的基本语法 django提供了分页的工具,存在于django.core中 Pagin...

    • 第20天,分页器

      本篇写了使用Django自有的分页器paginator的用法和自定制分页器 1.1 Django之分页功能 Dj...

    • (14)Django - 分页功能

      Django已为开发者内置了分页功能,只需调用Django内置分页功能的函数即可实现数据分页功能。我们在Djang...

    • 分页显示

      说明: 分页  Django 提供了一些类实现管理数据分页,这些类位于 django/core/pagina...

    • Django常用-分页

      分页 Django提供了数据分页的类,这些类被定义在django/core/paginator.py中。 类Pag...

    • Django之分页器

      Django自带分页器的实现 介绍 Django提供了一个新的类来帮助你管理分页数据,这个模块存放在django....

    网友评论

        本文标题:Django分页笔记

        本文链接:https://www.haomeiwen.com/subject/cgxryqtx.html