这篇文章主要介绍了Python Django封装分页成通用的模块详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
新建跑龙套文件夹,并创建page.py
page.py:
类ShowPage(对象): def __init__(自我、page_num total_count、url_prefix per_page=10, max_page=11): ''' :param page_num:当前页码数 :param total_count:数据总数 :param url_prefix:标签href的前缀 :param per_page:每页展示的数据数 :param max_page:页面上最多显示的页码数 ''' 自我。url_prefix=url_prefix 自我。max_page=max_page #总共需要多少页码来显示 total_page m=divmod (total_count per_page) #如果还有数据 如果m: total_page +=1 自我。total_page=total_page 试一试: page_num=int (page_num) #如果输入的页码数超过了最大的页码数,默认返回最后一页 如果page_num比;self.total_page: page_num=self.total_page #如果输入的页码数小于1,则返回第一页 如果page_num & lt;1: page_num=1 除了例外e: #当输入的页码不是正经数字的时候默认返回第一页的数据 page_num=1 自我。page_num=page_num #定义两个变量保存数据从哪儿取到哪儿 自我。data_start=(自我。page_num - 1) * 10 自我。data_end=自我。page_num * 10 #页面上总共展示多少页码 如果自我。total_page & lt;self.max_page: 自我。max_page=self.total_page half_max_page=自我。max_page//2 #页面上展示的页码的开始页 page_start=自我。page_num——half_max_page #页面上展示的页码的结束页 page_end=自我。page_num + half_max_page #如果当前页减一半比1还小 如果page_start & lt;=1: page_start=1 page_end=self.max_page #如果当前页加一半比总页码还大 如果page_end祝辞=self.total_page: page_end=self.total_page page_start=自我。total_page——自我。max_page + 1 自我。page_start=page_start 自我。page_end=page_end @ property def开始(自我): 返回self.data_start @ property def结束(自我): 返回self.data_end def page_html(自我): #拼接html的分页代码 html_list=[] #添加首页按钮 html_list.append (' & lt; li> & lt; a href=" https://www.yisu.com/zixun/{} ?页面=1”rel="外部nofollow”在首页& lt;/a> & lt;/li> '。格式(self.url_prefix)) #如果是第一页,就没有上一页 如果自我。page_num & lt;=1: html_list.append (' & lt;李类=敖谩弊4? lt; a href=" https://www.yisu.com/zixun/" rel=巴獠縩ofollow”rel=巴獠縩ofollow”祝辞& lt;跨度aria-hidden=" true "祝辞« & lt;/span> & lt;/a> & lt;/li>“.format(自我。page_num - 1)) 其他: #加一个上一页的标签 html_list.append (' & lt; li> & lt; a href=" https://www.yisu.com/zixun/{} ?页面={}“rel="外部nofollow”rel="外部nofollow”rel="外部nofollow”祝辞& lt;跨越aria-hidden=" true "在« & lt;/span> & lt;/a> & lt;/li>“.format(自我。url_prefix, self.page_num-1)) #展示的页码 因为我在范围(自我。page_start,自我。page_end + 1): #给当前页添加活跃 如果我==self.page_num: tmp=' & lt;李类=盎钤尽弊4? lt; a href=" https://www.yisu.com/zixun/{0} ?页面={1}" rel="外部nofollow”rel="外部nofollow”在{1}& lt;/a> & lt;/li>“.format(自我。url_prefix,我) 其他: tmp=' & lt; li> & lt; a href=" https://www.yisu.com/zixun/{0} ?页面={1}" rel="外部nofollow”rel="外部nofollow”在{1}& lt;/a> & lt;/li>“.format(自我。url_prefix,我) html_list.append (tmp) #如果是最后一页,就没有下一页 如果自我。page_num祝辞=self.total_page: html_list.append (' & lt;李类=敖谩弊4? lt; a href=" https://www.yisu.com/zixun/" rel=巴獠縩ofollow”rel=巴獠縩ofollow”祝辞& lt;跨度aria-hidden=" true "祝辞» & lt;/span> & lt;/a> & lt;/li>”) 其他: html_list.append ( “& lt; li> & lt; a href=" https://www.yisu.com/zixun/{} ?页面={}“rel="外部nofollow”rel="外部nofollow”rel="外部nofollow”祝辞& lt;跨越aria-hidden=" true "在» & lt;/span> & lt;/a> & lt;/li>“.format(自我。url_prefix,自我。page_num + 1) #添加尾页按钮 html_list.append (' & lt; li> & lt; a href=" https://www.yisu.com/zixun/{} ?页面={}“rel="外部nofollow”rel="外部nofollow”rel="外部nofollow”在尾页& lt;/a> & lt;/li>“.format(自我。url_prefix, self.total_page)) . join (html_list page_html=" ") #拼接html的分页代码 返回page_htmlPython Django封装分页成通用的模块详解