比这篇新的文章: Python - 人性化的时间(比如:两分钟以前)
比这篇旧的文章: 发芽网的全站都在用的css

自己写的paginate函数 for Django

语言: Python, 标签: 发芽网 Django 2008/05/23发布 9个月前更新 更新记录
作者: 半瓶墨水, 点击1102次, 评论(0), 收藏者(1), , 打分:

背景
主题: 字体:
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


所有评论,共0条:( 我也来说两句)


发表评论

注册登录后再发表评论