• 页面分页自定义插件


    #!/usr/bin/env python
    import tornado.ioloop
    import tornado.web
    from controllers import home
    from controllers import account
    
    settings ={
        'template_path':'views',#html文件模板路径配置
        'static_path':'static',#css,js文件路径配置
        # 'static_url_prefix':'/sss/',
    }
    
    application = tornado.web.Application([
            (r"/index/(?P<page>d*)", home.IndexHandler),
        # (r"/index", home.IndexHandler),
        #     (r"/login",account.LoginHandler),
        #     (r"/register",account.RegisterHandler),
            ],**settings)
    if __name__ == "__main__":
        application.listen(8888)
        tornado.ioloop.IOLoop.instance().start()
    start.py
    #!/usr/bin/env python
    import tornado.web
    LIST_INFO = [
        {'username':'taochen','email':'540123685@qq.com'}
    ]
    for i in range(99):
        temp = {'username':'qwee'+str(i),"email":str(i)+"ewq"}
        LIST_INFO.append(temp)
    
    class Paging:
        def __init__(self,base_url,current_page,len_info,page_info):
    
            try:
                current_page = int(current_page)
            except:
                current_page = 1
            if current_page < 1:
                current_page = 1
            self.current_page = current_page
            self.len_info = len_info
            self.page_info =page_info
            self.base_url = "{}{}{}".format('/',base_url,'/')
        def all_page(self):
            all_pager, c = divmod (self.len_info, self.page_info )
            if c > 0:
                all_pager += 1
            return all_pager
        def start_page(self):
            return (self.current_page - 1)*self.page_info
    
        def end_page(self):
            return (self.current_page)*self.page_info
    
    
        def paging(self):
            list_page = []
    
            if self.all_page() < 11:
                s = 1
                t = self.all_page()
            else:
                if self.current_page < 6:
                    s = 1
                    t = 11
                else:
                    if (self.current_page + 5) > self.all_page():
                        s = self.all_page() - 10
                        t = self.all_page()
                    else:
                        s = self.current_page - 5
                        t = self.current_page + 5
            temp = "<a  href={}>首页</a>".format (self.base_url )
    
            if self.current_page == 1:
                temp = "<a href='javascript:viod(0)'>首页</a>"
            else:
                temp = "<a href={}>首页</a>".format( self.base_url )
            list_page.append ( temp )
            if self.current_page == 1:
                temp = "<a href='javascript:viod(0)'>上一页</a>"
            else:
                temp = "<a href={}{}>上一页</a>".format( self.base_url,self.current_page - 1 )
            list_page.append ( temp )
            for i in range ( s, t + 1 ):
                if i == self.current_page:
                    temp = "<a class='active' href={}{}>{}</a>".format (self.base_url ,i, i )
                else:
                    temp = "<a href={}{}>{}</a>".format (self.base_url, i, i )
                list_page.append ( temp )
    
            if self.current_page >= self.all_page():
                temp = "<a href='javascript:viod(0)'>下一页</a>"
            else:
                temp = "<a href={}{}>下一页</a>".format( self.base_url,self.current_page + 1 )
            list_page.append ( temp )
            if self.current_page == self.all_page():
                temp = "<a href='javascript:viod(0)'>尾页</a>"
            else:
                temp = "<a href={}{}>尾页</a>".format( self.base_url,self.all_page() )
            list_page.append ( temp )
            jump = """<input id="paging" type ='text'/><a name= '{}' onclick="Jump('{}',this)">Go</a>""".format(self.all_page(),self.base_url)
            script = """
                <script>
                    function Jump(self,ths) {
                        var ret = ths.previousElementSibling.value;
                        if(ret.trim().length > 0){
                            if( ret > parseInt(ths.name)){
                                ret = parseInt(ths.name);
                            }
                        location.href = self+ret;
                        }
                    }
    
                </script>
                    """
            list_page.append (jump)
            list_page.append (script)
            str_page = "".join ( list_page )
            return str_page
    class IndexHandler(tornado.web.RequestHandler):
        def get(self,page):
    
            current_obj = Paging("index",page,len(LIST_INFO),5)
            current_list = LIST_INFO[current_obj.start_page():current_obj.end_page()]
            self.render('home/index.html',list_info = current_list,current_page = page, str_page = current_obj.paging())
        def post(self, page):
            user = self.get_argument("username")
            email =self.get_argument("email")
            temp = {'username':user,'email':email}
            LIST_INFO.append(temp)
            self.redirect('/index/'+page)
    home.py
    <!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: green;
                color: white;
            }
            .pager a.active{
                background-color: hotpink;
            }
    
        </style>
    </head>
    <body>
         <h1>提交数据</h1>
        <form method="post" action="/index/{{current_page}}">
            <input name="username" type="text">
            <input name="email" type="text">
            <input type="submit" value="提交">
        </form>
        <h1>显示数据</h1>
        <table border="1">
            <thead>
                <tr>
                    <th>用户名</th>
                    <th>邮箱</th>
                </tr>
            </thead>
            <tbody>
                {% for line in list_info %}
                    <tr>
                        <td>{{ line['username'] }}</td>
                        <td>{{ line['email'] }}</td>
                    </tr>
                {% end %}
            </tbody>
        </table>
    
        <div class="pager">{% raw str_page %}</div>
         
    </body>
    </html>
    index

  • 相关阅读:
    国际域名转出ICANN投诉
    C#中使用SslStream类来创建SSL服务器/客户端
    将.com域名转到godaddy的操作教程
    Google Test Automation Conference 2013 Schedule
    3月收藏
    4月收藏
    2月收藏
    5月收集
    stl中queues的基本用法
    codeblocks花屏终极解决方法
  • 原文地址:https://www.cnblogs.com/shiluoliming/p/6556527.html
Copyright © 2020-2023  润新知