博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python--day71--分页功能
阅读量:6432 次
发布时间:2019-06-23

本文共 2444 字,大约阅读时间需要 8 分钟。

分页功能代码:

1 from django.shortcuts import render 2  3 # Create your views here. 4  5 from app01 import models 6  7  8  9 def books(request):10     #从URL取参数11     page_num = request.GET.get("page")12     print(page_num,type(page_num))13     # 每一页显示多少条数据14     per_page = 1015     # 总数据是多少16     total_count = models.Book.objects.all().count()17     # 总共需要多少页码来展示18     total_page, m = divmod(total_count, per_page)19     if m:20         total_page += 121     try:22         page_num = int(page_num)23         # 如果输入的页码数超过了最大的页码数,默认返回最后一页的数据24         if page_num > total_page:25             page_num = total_page26     except Exception as e:27         #当输入的页码不是正经数字的时候,默认返回第一页的数据28         page_num = 129 30 31     #定义两个变量保存数据从哪儿取到哪儿32     data_start = (page_num-1)*1033     data_end = page_num*1034 35 36 37     #页面总共展示多少页码38     max_page = 1139     if total_page < max_page:40         max_page = total_page41 42 43     half_max_page = max_page // 244     #页面上展示的页码从哪儿开始45     page_start = page_num - half_max_page46     #页面上展示的页码到哪儿结束47     page_end = page_num + half_max_page48     #如果当前页减一半,比1还小49     if page_start <= 1:50         page_start = 151         page_end = max_page52 53     #如果当前页加一半比总页码数还大54     if page_end >= total_page:55         page_end = total_page56         page_start = total_page - max_page +157 58     all_book = models.Book.objects.all()[data_start:data_end]59 60     #自己拼接分页的HTML代码61     html_str_list = []62     #加上第一页63     html_str_list.append('
  • 首页
  • ')64 #加上一个上一页的标签65 #判断,如果是第一页就没有上一页了66 if page_num <= 1:67 html_str_list.append('
  • ')68 else:69 #加上一个上一页的功能70 html_str_list.append('
  • '.format(page_num-1))71 72 for i in range(page_start,page_end +1):73 #如果是当前页就加一个active样式类74 # if i == page_num:75 # tmp = '
  • {0}
  • '.format(i)76 # else:77 if i == page_num:78 tmp = '
  • {0}
  • '.format(i)79 else:80 tmp = '
  • {0}
  • '.format(i)81 82 html_str_list.append(tmp)83 84 #加上一个下一页的标签85 #判断,如果是最后一页,就没有下一页86 if page_num >= total_page:87 html_str_list.append('
  • ')88 else:89 html_str_list.append('
  • '.format(page_num+1))90 #加上最后一页91 html_str_list.append('
  • 末页
  • '.format(total_page))92 93 page_html = "".join(html_str_list)94 95 96 97 return render(request,'books.html',{
    'books':all_book,"page_html":page_html})

     

    转载于:https://www.cnblogs.com/xudj/p/10671643.html

    你可能感兴趣的文章
    后台post注入爆密码
    查看>>
    Java --- 多线程 面试题
    查看>>
    OA项目如何成功实施!
    查看>>
    FindMaxConsecutive.java
    查看>>
    面试官问:ZooKeeper 一致性协议 ZAB 原理
    查看>>
    DNS实现域名正解与反解
    查看>>
    反向教学系列之——Django入门(一)【不需知道web框架】
    查看>>
    Linux学习-标准输入输出
    查看>>
    CentOS 7 配置IP
    查看>>
    文本处理工具grep及正则表达式
    查看>>
    Intel VT-x处于禁用状态
    查看>>
    用什么软件可以修改PDF文件,软件的操作方法
    查看>>
    如何精简企业主数据“裹脚布”
    查看>>
    Pointer on C
    查看>>
    & 号和管道符号(|)在不同场景下的使用方法
    查看>>
    curl 浏览器模拟请求实战
    查看>>
    多个VLAN中的vrrp备份组配置举例
    查看>>
    运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统(六)
    查看>>
    interlib在tomcat7.0的安装
    查看>>
    水晶报表在大型WEB内部管理系统里的滑铁卢
    查看>>