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

    你可能感兴趣的文章
    Java线程代码
    查看>>
    动态规划之硬币表示问题
    查看>>
    AGG第三课 下载与编译
    查看>>
    FFmpeg h264_probe函数剖析
    查看>>
    排序链表中删除重复元素II
    查看>>
    MSSQL2000+SP4补丁安装图解
    查看>>
    SpringData入门笔记(三) - SpringData初尝鲜
    查看>>
    Shell颜色控制
    查看>>
    20Exchange Server 2010跨站点部署-分支机构CAS配置
    查看>>
    cacti监控memcache
    查看>>
    制作U盘安装Ubuntu步骤
    查看>>
    Java Class文件详解
    查看>>
    Nagios监控Linux、Windows的网卡流量
    查看>>
    Python urllib模块的URL编码解码功能
    查看>>
    Active Directory Web Services Error
    查看>>
    oracle关闭问题shutdown
    查看>>
    hadoop hive 手记
    查看>>
    powershell在远程windows server上登录并执行程序
    查看>>
    Android 的网络通信的小知识
    查看>>
    多网卡Linux服务器如何确定网口位置
    查看>>