分页设计

Posted 少数派&蔡先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分页设计相关的知识,希望对你有一定的参考价值。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import tornado.web
from controllers import home

setting = {
    "template_path":"views",# 模板路径配置
     "static_path":"statics", # 静态文件配置# 静态文件配置
    #"static_url_prefix":"/ss/",# 静态文件前缀
}

#路由映射  路由系统
application = tornado.web.Application([
    (r"/index/(?P<page>\d*)", home.IndexHandler),
],**setting)
#  二级匹配
application.add_handlers("buy.cai.com$",[
    (r"/index/(?P<page>\d*)", buy.IndexHandler),
])

if __name__ == "__main__":
    application.listen(1111)
    tornado.ioloop.IOLoop.instance().start()
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import tornado.web
LIST =[
    {"name":"caidapeng","pwd":123456},
]
for i in range(300):
    temp ={"name":"cai"+str(i),"pwd":"11aa"}
    LIST.append(temp)
class IndexHandler(tornado.web.RequestHandler):
    def get(self,page):
        # 每页显示五条 page 当前页
        # 第一页  0:5  LIST[0,5]  2 LIST[5,10]
        try:
            page = int(page)
        except:
            page = 1
        if page < 1 :
            page = 1
        start = (page-1) * 5
        end = page * 5
        current_list = LIST[start:end]

        # 总页数
        all_page,c = divmod(len(LIST),5)
        if c >0:
            all_page += 1

        # 页面显示五个页码
        print(all_page,c)
        if  page < 3 :
            if page < 0:
                st = 0
                en = 5
            else:
                st = 0
                en = 5

        elif page >all_page-3:
            st = all_page -5
            en = all_page
        else:
            st = page-3
            en = page+2
        list_page = []
        for p in range(st,en):#  参数为动态的
            if p+1 == page:
                temp = <a class= "active" href="/index/%s">%s</a> %(p+1,p+1)
            else:
                temp = <a href="/index/%s">%s</a> %(p+1,p+1)
            list_page.append(temp)
            str_page = "".join(list_page)
        self.render("home/index.html",list = current_list,currpage = page,str_page=str_page)

    def post(self, page):
        name = self.get_argument("name")
        pwd = self.get_argument("pwd")
        temp = {name : name , pwd : pwd}
        LIST.append(temp)
        self.redirect("/index/"+page)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .pager a {
            display:inline-block;
            padding:5px;
            margin:3px;
            background-color:cadetblue;

        }
        .pager a.active{
            background-color:brown;
            color:white;

        }
    </style>
</head>
<body>
<h2>提交数据</h2>
<form method="post" action="/index/{{currpage}}">
    <input name ="name" type="text">
    <input name ="pwd" type="text">
    <input  type="submit" value="提交">
</form>
<h3>显示数据</h3>
<table>
    <tr>
          <th>姓名</th>
          <th>密码</th>
    </tr>
    {% for line in list %}
    <tr>

        <td>{{line[‘name‘]}}</td>
        <td>{{line[‘pwd‘]}}</td>

    </tr>
     {% end %}

</table>
<div class="pager">{% raw str_page %}</div>
</body>
</html>

 

 

以上是关于分页设计的主要内容,如果未能解决你的问题,请参考以下文章

片段被视图分页器布局切割

Symfony2 将哈希片段参数附加到分页 URL

FragmentStatePagerAdapter 视图分页器片段在活动重新创建后不显示

FragmentStatePagerAdapter视图分页器片段在重新创建活动后未显示

mybatis动态sql片段与分页,排序,传参的使用

项目代码设计规范总结之分页查询