关于python-web开发中分页的处理
2017-07-17 15:25
316 查看
本案例基于tornado基础上
一、分页的效果
二、封装一个分页的方法
#!/usr/bin/env python # encoding: utf-8 """ 定义一个分页的方法 current_page:表示当前页面 countent:查询出来全部的数据 MAX_PAGE:表示一页显示多少,一般定义在一个常量的文件中 """ def get_page_list(current_page, countent, MAX_PAGE): start = (current_page - 1) * MAX_PAGE end = start + MAX_PAGE # 进行切片操作 split_countent = countent[start:end] # 计算总共多少页 count = len(countent) / MAX_PAGE if len(countent) % MAX_PAGE != 0: count += 1 # 上一页 pre_page = current_page - 1 # 下一页 next_page = current_page + 1 # 边界点的判断 if pre_page == 0: pre_page = 1 if next_page > count: next_page = current_page # 进行分页处理,把当前显示的全部页码返回到前端,前端直接遍历就可以 if count < 5: pages = [p for p in xrange[1, count + 1]] elif current_page <= 3: pages = [p for p in xrange(1, 6)] elif current_page >= count - 2: pages = [p for p in xrange(count - 4, count + 1)] else: pages = [p for p in xrange(current_page - 2, current_page + 3)] return { 'split_countent': split_countent, # 当前显示的 'count': count, # 总共可以分多少页 'pre_page': pre_page, # 上一页 'next_page': next_page, # 下一页 'current_page': current_page, # 当前页 'pages': pages # 全部的页面吗 }
三、调用分页方法
def get(self, page): files = Files.display_file_list(); # 这个get_page_list函数中返回是一个对象,files_page["split_countent"]表示取当前显示的内容 files_page = get_page_list(int(page), files, MAX_PAGE) self.render("admin/main/file_list.html", files=files_page["split_countent"], files_page=files_page)
四、点击确认跳转到分页
class ToPage(BaseHandler): def post(self): page = self.get_argument("page",''); files = Files.display_file_list(); # 这个get_page_list函数中返回是一个对象,files_page["split_countent"]表示取当前显示的内容 files_page = get_page_list(int(page), files, MAX_PAGE) self.render("admin/main/file_list.html", files=files_page["split_countent"], files_page=files_page)
五、前端页面
<div class="row"> <ul class="pagination pagination-sm" style="width: 340px;float: left" id="page-num"> <li><a href="/admin/selfInfo/{{ files_page['pre_page'] }}">«</a></li> {% if files_page['current_page'] != 1 %} <li><a href="/admin/selfInfo/1">首页</a></li> {% end %} {% for index in files_page['pages']%} <li {% if index ==files_page['current_page'] %} class="active" {% end %} > <a href="/admin/selfInfo/{{ index }}">{{ index }}</a> </li> {% end %} {% if files_page['current_page'] != files_page['count']%} <li><a href="/admin/selfInfo/{{ files_page['count'] }}">尾页</a></li> {% end %} <li><a href="/admin/selfInfo/{{ files_page['next_page'] }}">»</a></li> </ul> <p style="float: left;margin: 26px 0;">共{{files_page['count']}}页 | 第 {{files_page['current_page']}} 页</p> <div style="float:left;margin-top: 26px;margin-left: 10px;"> <span style="display: block;float: left;">跳转至:</span> <form style="float: right;margin-top: -2px;margin-left: 10px;" action="/topage" method="post"> <input type="text" style="width: 40px;text-align: center" name="page"/> <input type="submit" value="确认" /> </form> </div> </div>
相关文章推荐
- 关于《Web接口开发与自动化测试--基于Python语言》
- 关于Python的WEB开发框架的介绍
- Web开发中关于servlet产生HTTP Status 404 - /webMVC/servlet/MyReturnMessage.jsp的处理
- 关于diango--python的web开发
- 关于javaWeb开发中json数据的处理总计
- [置顶] 【Android开发技巧】 关于Webview拍照或从相册上传图片处理总结
- python关于webdriver处理cookie的一点想法(多线程)
- 关于python开发web中插入本地图像和链接本地的html文件的方法
- Python3之Django Web框架分页多页码处理一
- 关于Web开发,"新建"和"编辑"在同个页面的处理方法
- 我的第一个python web开发框架(39)——后台接口权限访问控制处理
- Python3之Django Web框架首页分页处理升级版
- Python3之Django Web框架分页多页码处理二
- webpy,希望能多了解一些关于WSGI,PYTHON的WEB开发框架的事,也希望能进一步了解PYTHON
- python web 开发中的csrf_token问题及处理方法
- 关于Python的WEB开发框架的介绍
- python的web 开发基础之url处理
- 关于在WindowsXp 环境下Python2.6 + web.py 构建WEB开发环境遇到的问题
- C#开发web程序中关于 一般处理程序中的context.Response.ContentType = "text/plain"
- 【学习日志】关于Python web开发测试驱动方法