博客
关于我
强烈建议你试试无所不能的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

    你可能感兴趣的文章
    js获取在线编辑Word文档中选中的文本
    查看>>
    Java远程调试 java -Xdebug各参数说明
    查看>>
    android 技术
    查看>>
    myecplise2013设置总结
    查看>>
    理解MySQL——索引与优化
    查看>>
    JFinal教程1——小白的第一个JFinal程序
    查看>>
    调用startActivityForResult后,onActivityResult立刻响应,返回当
    查看>>
    spring boot 源码分析(四) 配置文件加载4 之 ConfigFileApplicationListener
    查看>>
    分享30个开发人员有用的CSS代码片段
    查看>>
    Sysprep的那些事
    查看>>
    openfire smack包聊天室
    查看>>
    The Syntax of Funs
    查看>>
    基于反射做的对象比对
    查看>>
    java 代码改动一点点,eclipse 老是自动重新加载的解决方案
    查看>>
    RxJava学习笔记
    查看>>
    Java 多线程 - 线程 - 中断
    查看>>
    At first!
    查看>>
    python学习系列之python装饰器基础(2)---装饰含返回值的函数
    查看>>
    神奇的负载均衡
    查看>>
    kubernetes log 流式数据处理
    查看>>