Heim >Backend-Entwicklung >PHP-Tutorial >webpy实现分页功能的方法_PHP教程

webpy实现分页功能的方法_PHP教程

WBOY
WBOYOriginal
2016-07-21 14:58:23902Durchsuche

分页,在做WEB开发的时候一定会遇到的,可是webpy却没有内置的分布类,只有自己动手写一个简单的分页类。本文,就以webpy(实际只是python的功能)为便,实现一个简单的分页类...

如何分页

以前,经常将分页与DB混在一起,比如以下的PHP代码:

<?php $page = get_current_page();
$start = $page*$step;
$article_list = $db->all('select * from `xxx` limit $start,$step;');
$total = $db->get('select count(*) as `total` form `xxx`;');
//...pagination...

这样的分页明显是不科学的。

分页应该注意的事项

  • 分页类不应与混淆在一起
  • 分页类不应与界面混淆在一起
  • 分页类应该独立,在任何情况下都可以使用

为了满足以上的三个条件,就设计了一个简单的分页类(只做示例,应用到项目需要优化代码和严格的检查)

 

分页类

分页类代码

 

class ProbbsPage:
     def __init__(self, total, per = 10):
          self.total = total
          self.per = per
          self.url = ''
          self.page = 1
          
     def set_url(self,url):
          self.url = url
          return self
     
     def set_page(self,page):
          self.page = int(page)
          return self
          
     def show(self):
          if self.total%self.per == 0:
               pages = self.total/self.per
          else:
               pages = self.total/self.per+1
          if self.page %s/%s pages '%(self.page,pages)
          for i in range(limit_s,limit_e+1):
               if i == self.page:
                    pagination += '<a class="cur" href="javascript:void(0);">%s</a>'%(i,)
               else:
                    pagination += '<a href="%s">%s</a>'%(self.url%i,i)
          
          return pagination

分页类调用示例

pagination =ProbbsPage(总页数,每页数)
url = 'your_page?page=%s';
page_html = pagination.set_url(url).set_page(page).show()
print page_html
#就可以显示出
#<span>当前页/共几页</span>
#<a>页页链接</a>

分类页可以优化的地方

set_url可以自动根据url进行提取,前提是使用“?页面参数=第几页”等常用的形成(像我使用专门的不期然形式就不可以了)
set_page同上,可以自动从url中上提取
如果做到以上的两步,就可以直接 ProbbsPage(总页数,每页数).show()就可以了,相对来说比较方便

文章来源:http://pjiaxu.com/python/48.html

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/363817.htmlTechArticle分页,在做WEB开发的时候一定会遇到的,可是webpy却没有内置的分布类,只有自己动手写一个简单的分页类。本文,就以webpy(实际只是py...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn