页面分页自定义插件
Posted 失落的黎明
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了页面分页自定义插件相关的知识,希望对你有一定的参考价值。
![](https://image.cha138.com/20210609/7e1f8a3e85c44708b1d4160ab07b071c.jpg)
#!/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()
![](https://image.cha138.com/20210609/7e1f8a3e85c44708b1d4160ab07b071c.jpg)
#!/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)
![](https://image.cha138.com/20210609/7e1f8a3e85c44708b1d4160ab07b071c.jpg)
<!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>
以上是关于页面分页自定义插件的主要内容,如果未能解决你的问题,请参考以下文章