Python代码: 自己写的paginate函数 for Django
01 #发芽网的上下翻页那一块都是用的这个
02 #blog: http://www.2maomao.com/blog/my-paginate-for-django/
03
04 def mypaginate(request, total, pagesize, params=""):
05 #get page info
06 curr = int(request.GET.get('page', 1))
07 #calculate the offset
08 offset = (curr - 1) * pagesize
09 if offset >= total:
10 offset = total - 1
11 if offset < 0:
12 offset = 0
13 #paginatize
14 page_navi = []
15 page_ex = {}
16 max_page = (total - 1) / pagesize + 1
17 start = curr - ((curr - 1) % 10)
18 end = start + 10
19 if end > max_page + 1:
20 end = max_page + 1 #remember it's [start, end)
21 elif max_page > end:
22 page_ex['max_page'] = max_page
23
24 for i in range(start, end):
25 link = ("?page=%d&" % i) + params
26 page_navi.append((i, link))
27 if curr > 1:
28 page_ex['first'] = ("?page=%d&" % 1) + params
29 page_ex['prev'] = ("?page=%d&" % (curr - 1)) + params
30 if curr < max_page:
31 page_ex['next'] = ("?page=%d&" % (curr + 1)) + params
32 page_ex['last'] = ("?page=%d&" % max_page) + params