自定义分页
来源:互联网 发布:植村秀淘宝旗舰店 编辑:程序博客网 时间:2024/06/05 19:56
自定义分页
def custom(request): current_Page = request.GET.get('page') current_Page = int(current_Page) per_page = 10 start = (current_Page - 1) * per_page end = current_Page * per_page user_list = models.UserInfo.objects.all()[start:end] return render(request,'custom.html',{'user_list':user_list})
<body><h1>用户列表</h1><ul> {% for row in user_list %} <li>{{ row.name }}</li> {% endfor %}</ul></body>
- 改写成类
<body ><h1>用户列表</h1><ul> {% for row in user_list %} <li>{{ row.name }}</li> {% endfor %}</ul>{{ page_info.pager|safe }}{#xss攻击#}</body>
class PageInfo(object): def __init__(self,current_Pag,all_count,per_page,show_page=11): try: self.current_Page = int(current_Pag) except Exception as e: self.current_Page = 1 self.all_count = all_count 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 @property def start(self): return (self.current_Page - 1) * self.per_page @property def end(self): return self.current_Page * self.per_page @property def pager(self): page_list = [] half = int((self.show_page-1)/2) begin = self.current_Page - half stop = self.current_Page + half for i in range(begin,stop+1): if i == self.current_Page: temp = "<a style='color:red' href='/custom.html?page=%s'>%s</a>"%(i,i,) else: temp = "<a style='display: inline;margin: 5px;padding: 5px' href='/custom.html?page=%s'>%s</a>"%(i,i,) page_list.append(temp) return ''.join(page_list)def custom(request): all_count = models.UserInfo.objects.all().count() page_info =PageInfo(request.GET.get('page'),all_count,10) user_list = models.UserInfo.objects.all()[page_info.start:page_info.end] return render(request,'custom.html',{'user_list':user_list,'page_info':page_info})
- 解决总页数 小于 show_page
class PageInfo(object): def __init__(self,current_Pag,all_count,per_page,show_page=11): try: self.current_Page = int(current_Pag) except Exception as e: self.current_Page = 1 self.all_count = all_count 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 @property def start(self): return (self.current_Page - 1) * self.per_page @property def end(self): return self.current_Page * self.per_page @property def pager(self): page_list = [] half = int((self.show_page-1)/2) if self.all_pager < self.show_page: begin = 1 stop = self.all_pager else: begin = self.current_Page - half stop = self.current_Page + half for i in range(begin,stop+1): if i == self.current_Page: temp = "<a style='color:red' href='/custom.html?page=%s'>%s</a>"%(i,i,) else: temp = "<a style='display: inline;margin: 5px;padding: 5px' href='/custom.html?page=%s'>%s</a>"%(i,i,) page_list.append(temp) return ''.join(page_list)def custom(request): all_count = models.UserInfo.objects.filter(id__lt=22).count() page_info =PageInfo(request.GET.get('page'),all_count,10) user_list = models.UserInfo.objects.filter(id__lt=22)[page_info.start:page_info.end] return render(request,'custom.html',{'user_list':user_list,'page_info':page_info})
- 解决选择开始几个页吗出现的问题
class PageInfo(object): def __init__(self,current_Pag,all_count,per_page,show_page=11): try: self.current_Page = int(current_Pag) except Exception as e: self.current_Page = 1 self.all_count = all_count 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 @property def start(self): return (self.current_Page - 1) * self.per_page @property def end(self): return self.current_Page * self.per_page @property def pager(self): page_list = [] half = int((self.show_page-1)/2) if self.all_pager < self.show_page: begin = 1 stop = self.all_pager else: if self.current_Page <= half: begin = 1 stop = self.show_page else: begin = self.current_Page - half stop = self.current_Page + half for i in range(begin,stop+1): if i == self.current_Page: temp = "<a style='color:red' href='/custom.html?page=%s'>%s</a>"%(i,i,) else: temp = "<a style='display: inline;margin: 5px;padding: 5px' href='/custom.html?page=%s'>%s</a>"%(i,i,) page_list.append(temp) return ''.join(page_list)def custom(request): all_count = models.UserInfo.objects.all().count() page_info =PageInfo(request.GET.get('page'),all_count,10) user_list = models.UserInfo.objects.all()[page_info.start:page_info.end] return render(request,'custom.html',{'user_list':user_list,'page_info':page_info})
- 解决最后几个页吗出现的问题
class PageInfo(object): def __init__(self,current_Pag,all_count,per_page,show_page=11): try: self.current_Page = int(current_Pag) except Exception as e: self.current_Page = 1 self.all_count = all_count 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 @property def start(self): return (self.current_Page - 1) * self.per_page @property def end(self): return self.current_Page * self.per_page @property def pager(self): page_list = [] half = int((self.show_page-1)/2) if self.all_pager < self.show_page: begin = 1 stop = self.all_pager else: if self.current_Page <= half: begin = 1 stop = self.show_page else: if self.current_Page + half > self.all_pager: begin = self.all_pager - self.show_page + 1 stop = self.all_pager else: begin = self.current_Page - half stop = self.current_Page + half for i in range(begin,stop+1): if i == self.current_Page: temp = "<a style='color:red' href='/custom.html?page=%s'>%s</a>"%(i,i,) else: temp = "<a style='display: inline;margin: 5px;padding: 5px' href='/custom.html?page=%s'>%s</a>"%(i,i,) page_list.append(temp) return ''.join(page_list)def custom(request): all_count = models.UserInfo.objects.all().count() page_info =PageInfo(request.GET.get('page'),all_count,10) user_list = models.UserInfo.objects.all()[page_info.start:page_info.end] return render(request,'custom.html',{'user_list':user_list,'page_info':page_info})
- 加入上一页下一页
class PageInfo(object): def __init__(self,current_Pag,all_count,per_page,show_page=11): try: self.current_Page = int(current_Pag) except Exception as e: self.current_Page = 1 self.all_count = all_count 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 @property def start(self): return (self.current_Page - 1) * self.per_page @property def end(self): return self.current_Page * self.per_page @property def pager(self): page_list = [] half = int((self.show_page-1)/2) if self.all_pager < self.show_page: begin = 1 stop = self.all_pager else: if self.current_Page <= half: begin = 1 stop = self.show_page else: if self.current_Page + half > self.all_pager: begin = self.all_pager - self.show_page + 1 stop = self.all_pager else: begin = self.current_Page - half stop = self.current_Page + half if self.current_Page <= 1: prev = "<a style='color:red' href='/custom.html?page=1'>上一页</a>" else: prev = "<a style='color:red' href='/custom.html?page=%s'>上一页</a>"%(self.current_Page-1,) page_list.append(prev) for i in range(begin,stop+1): if i == self.current_Page: temp = "<a style='color:red' href='/custom.html?page=%s'>%s</a>"%(i,i,) else: temp = "<a style='display: inline;margin: 5px;padding: 5px' href='/custom.html?page=%s'>%s</a>"%(i,i,) page_list.append(temp) if self.current_Page >= self.all_pager: nex = "<a style='color:red' href='/custom.html?page=%s'>下一页</a>"%(self.all_pager,) else: nex = "<a style='color:red' href='/custom.html?page=%s'>下一页</a>" % (self.current_Page + 1,) page_list.append(nex) return ''.join(page_list)def custom(request): all_count = models.UserInfo.objects.all().count() page_info =PageInfo(request.GET.get('page'),all_count,10) user_list = models.UserInfo.objects.all()[page_info.start:page_info.end] return render(request,'custom.html',{'user_list':user_list,'page_info':page_info})
阅读全文
0 0
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 自定义分页
- 分页:高度自定义分页
- yii2自定义分页分页属性
- 自定义DataGrid分页设置
- [转]DataGrid自定义分页
- 学习互联网架构第八课(单例和多线程)
- 多个Fragment界面重叠和拍照闪退问题
- NPOI的文件流
- spring中的Cglib字节码增强实现AOP
- css揭秘读书笔记(一)
- 自定义分页
- 【PB】PB画板介绍
- Model传值的学习
- 制作logo
- TCP/IP
- 内存模块:BSS段、数据段、代码段、堆与栈
- 关于ToolBar+DrawerLayout的小结
- win10+ubuntu17.04双系统安装
- mybatis报错