zoukankan      html  css  js  c++  java
  • django分页的实现,前端后端组件!非内置分页的使用,

      django有一个自带的分页,虽然功能很全面,但是不适合我应用的场景,所以自己写了一个代码 拿走不谢!

      发现了了bug 笔者正在修复 美化 修复好了在上传

      应用的场景 :

        1.最好是 django中使用

        2. 分页索要的数据 你必须给全

        3. 输出的是一个字典 和 一个分页的字符串类型代码

           

      效果图:

        使用的页码剧中飘红效果,就是后边的样式没有调好,我不专业,你自己调一下吧

      使用方法:

        拿到下面的组件,放到一个文件夹里面 

    views.py要引入一下 

    因为我的page

    满足条件了之后,前端页面这么写组件返回的数据是样的,是一个字典,que是querryswt类型,new_html是一个分页组件 所以前端这么写就行了

     1 """
     2 启动调用的函数是 my_html()
     3  需要的参数是 
     4  param que: 一个querryset类型的数据 
     5  new_num_page:  要跳转的的页码 
     6  href:拼接路径
     7 
     8 
     9 """
    10 def html(new_lis,new_num_page,page_num,href):
    11     """
    12     :param new_lis:
    13     :param new_num_page:
    14     :param page_num:
    15     :param href:  传入的拼接路径比如 /custorm/?page=
    16     :return:
    17     """
    18     page_html = ""
    19     page_pre_html = f'<nav aria-label="Page navigation"><ul class="pagination "><li><a href="{href}1" aria-label="Previous"><span aria-hidden="true">首页</span></a></li><li><a href="{href}{new_num_page - 1}" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li>'
    20     page_html += page_pre_html
    21     for i in new_lis:
    22         if i == str(new_num_page):
    23             page_html += f'<li ><a href="{href}{i}"  style="color:red"  >{i}</a></li>'
    24         else:
    25             page_html += f'<li ><a href="{href}{i}"  >{i}</a></li>'
    26 
    27     pagenum_html = f'<li><a href="{href}{new_num_page + 1}" aria-label="Next"><span aria-hidden="true" >&raquo;</span></a></li><li><a href="{href}{page_num}" aria-label="pattern"><span aria-hidden="true">尾页</span></a></li><li><span aria-hidden="true"  ><form action="" method="get" ><input type="text"   style="80px;height:18px;" placeholder="共:{page_num}页" name="page" ><input  type="submit" style="80px;height:18px;" value="跳转"></form></li></ul></nav>'
    28     page_html += pagenum_html
    29     return page_html
    30 
    31 #收入数据,做成字典传出去
    32 def my_html(que,new_num_page,href,page_max_piece=10,page_tag_num=5):# param que: 一个querry类型的数据new_num_page:  新的页码 href:拼接路径
    33     """
    34     :param que: 一个querry类型的数据
    35     :param new_num_page:  新的页码
    36     href:拼接路径
    37     :param page_max_piece: 页面显示的最大条数
    38     :param page_tag_num: 页面显示的页码数 最好是奇数 轻易别改
    39     :return:  返回一个字典 携带切片好的querry 和 一个 网页的html 直接返回前段就可以用了
    40     """
    41     all_data_count = que.count()
    42     page_num, resid = divmod(all_data_count, page_max_piece)  # 商数和余数
    43     if resid:
    44         page_num += 1  # 拿到了总页数
    45     page_all_lis = [str(i) for i in range(1, page_num + 1)]
    46     if new_num_page in page_all_lis:
    47         new_num_page = int(new_num_page)
    48         if new_num_page > 2 and new_num_page < page_num - 1:
    49             ret = html(page_all_lis[new_num_page-3:new_num_page+2],new_num_page,page_num,href)
    50         elif new_num_page <= page_tag_num:
    51             ret = html(page_all_lis[ 0:page_tag_num], new_num_page, page_num,href)
    52         elif new_num_page > page_num-2:
    53             ret = html(page_all_lis[page_num-page_tag_num:page_num],new_num_page,page_num,href)
    54         return {"que": que[(new_num_page - 1) * page_max_piece:new_num_page * page_max_piece], "new_html": ret}
    55     else:
    56         new_num_page=1
    57         ret = html(page_all_lis[0:page_tag_num], new_num_page, page_num,href)
    58         return {"que": que[(new_num_page - 1) * page_max_piece:new_num_page * page_max_piece], "new_html": ret}
    V关于分页的组件

      

        

        

  • 相关阅读:
    SwiftyUserDefaults-封装系统本地化的框架推荐
    转:AFNetworking 与 UIKit+AFNetworking 详解
    转:KVC/KVO原理详解及编程指南
    转:NSString什么时候用copy,什么时候用strong
    代码重构原则
    转:【iOS开发每日小笔记(十一)】iOS8更新留下的“坑” NSAttributedString设置下划线 NSUnderlineStyleAttributeName 属性必须为NSNumber
    转:iOS程序main函数之前发生了什么
    转:iOS 屏幕适配,autoResizing autoLayout和sizeClass图文详解
    Apple macOS Mojave Intel Graphics Driver组件任意代码执行漏洞
    巧用"记事本"让病毒无效运行
  • 原文地址:https://www.cnblogs.com/well-666/p/11391002.html
Copyright © 2011-2022 走看看