博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python--day71--分页功能
阅读量:6433 次
发布时间: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

    你可能感兴趣的文章
    Servlet以及spring mvc实现bigpipe技术分享
    查看>>
    java小程序查看器
    查看>>
    服务器数据丢失紧急处理办法
    查看>>
    分享23款使用纯CSS3生成的知名logo设计
    查看>>
    在vSphere ESXi6 中成功安装 Nexus 1000v n1000v-dk9.5.2.1.SV3.1.10
    查看>>
    MaxCompute Optimizer之表达式约化
    查看>>
    聊聊lombok构造模式的参数校验
    查看>>
    Linux基础学习—2
    查看>>
    iOS技巧之获取本机通讯录中的内容,解析通讯录源代码
    查看>>
    程序员从零到月薪15K的转变,python200G资料分享
    查看>>
    DNS域名解析的知识了解
    查看>>
    部署社交网站
    查看>>
    CentOS下如何修改主机名
    查看>>
    “机器人商店”是什么?卖机器人的吗?
    查看>>
    SVN的代码正确提交方法
    查看>>
    js框架 vue
    查看>>
    tomcat关闭时进程未退出
    查看>>
    Git分支管理策略
    查看>>
    给每一辆车配上“×××”,老牌安企高新兴的交通新作
    查看>>
    VLAN与Trunk的配置
    查看>>