美文网首页
万能分页模板

万能分页模板

作者: Stimulate_923a | 来源:发表于2018-12-04 21:24 被阅读0次

views视图

def student(request):

    # all_count 数据库总个数

        all_count = models.UserInfo.objects.all().count()

        #每页显示数据数

        page_info  = PageInfo(request.GET.get('page'),all_count,10,'student.html',11)   //'student.html  配置url

        user_list = models.UserInfo.objects.all()[page_info.start():page_info.end()]#传入数据

    return render(request,'student.html',{'user_list':user_list,'page_info':page_info})

关键模板来了:

class PageInfo(object):

def __init__(self,current_page,all_count,per_page,base_url,show_page=11):

#current_page当前页

        self.current_page = current_page

try:

self.current_page =int (current_page)

except Exception as e:

self.current_page =1

        #per_page 每页显示总个数

        self.per_page = per_page

a,b=divmod(all_count,per_page)

if b:

a=a+1

        self.all_pager = a

self.show_page = show_page

self.base_url = base_url

def start(self):

return (self.current_page -1)*self.per_page

def end(self):

return self.current_page *self.per_page

def pager(self):

page_list=[]

harf =int((self.show_page-1)/2)

#如果数据总页数 < 11

        if self.all_pager

begin =1

            stop =self.all_pager+1

            # 如果数据总页数 > 11

        else:

#如果当前页<=5,永远显示1-11页

            if self.current_page <= harf:

begin =1

                stop =self.show_page+1

                # 否则当前页>5,永远显示中间页

            else:

# 如果当前页+5大于所有数据页数,永远显示最后一页

                if self.current_page + harf>self.all_pager:

begin =self.all_pager -self.show_page+1

                    stop =self.all_pager +1

                else:

begin =self.current_page - harf

stop =self.current_page+harf+1

 if self.current_page <=1:

prev ="<li><a href='#'>上一页</a></li>"

  else:

prev ="<li><a href='%s?page=%s'>上一页</a></li>" %(self.base_url,self.current_page-1,)

page_list.append(prev)

        for iin range(begin,stop):

if i ==self.current_page:

temp ="<li class='active'><a href='/%s?page=%s'>%s</a></li>" %(self.base_url,i, i,)

else:

temp ="<li><a href='/%s?page=%s'>%s</a></li>" % (self.base_url, i, i,)

page_list.append(temp)

if self.current_page >=self.all_pager:

nex ="<li><a href='#'>下一页</a></li>"

else:

nex ="<li><a href='%s?page=%s'>下一页</a></li>" % (self.base_url,self.current_page +1,)

page_list.append(nex)

return ''.join(page_list)

相关文章

  • 万能分页模板

    views视图 def student(request): # all_count 数据库总个数 all_coun...

  • 关于分页及模板

    模板 应用模板需要先引入template-web.js文件 通过ajax将用户信息放入模板 指定模板 分页 分页应...

  • 模板接口

    目录 后端模板匹配实现过程 1. 后端模板匹配实现过程属性 接口功能 返回用户照片分页信息,并按照模板内容和分页照...

  • HIS系统

    对于分页模板除了首页显示以外其他点击在此给分页模板追加内容需要判定是否已经初始化

  • 【TP5-10】视图与模板

    1、模板输出 2、分页输出 3、公共模板application/index/view/user/header.ht...

  • Android简单实现 万能适配器 + 下拉刷新 + 无感分页加

    万能适配器 + 下拉刷新 + 无感分页 v3.1更新 完善更多下拉刷新场景 增加【上拉分页加载】和【无感分页加载】...

  • Vue v-for实现分页 2018-08-08

    一、模板 模板中用slice函数对数据数组进行分页显示 二、数据 三、效果图

  • 2019-12-03

    设计呀设计!没有万能的模板,只有万能的自己~~~

  • 分页器的使用

    1.获取分页对象 2.模板中的使用

  • 单页面响应式模板:血色圆月

    预览: 部分页面展示: 演示及下载: 演示地址 免费下载 更多模板请立刻访问模板集市 介绍: 单页面响应式模板,支...

网友评论

      本文标题:万能分页模板

      本文链接:https://www.haomeiwen.com/subject/jzzvcqtx.html