其优势就是无需 count 以下总记录数
直接采用推进形式在百万记录及高负载有一定作用
但是只能上下推进 没更多页选择
paginator.py
直接采用推进形式在百万记录及高负载有一定作用
但是只能上下推进 没更多页选择
paginator.py
class InvalidPage(Exception):
pass
class PageNotAnInteger(InvalidPage):
pass
class EmptyPage(InvalidPage):
pass
class Paginator(object):
def __init__(self,object_list,per_page):
self.object_list = object_list
self.per_page = per_page
def page(self,number=1):
self.cur_pages = number
if self.cur_pages < 1 :
number = 1
number = (int(number)-1)*int(self.per_page)
max = int(number)+int(self.per_page)+1
data = self.object_list[number:max]
num = data.__len__()
data = data._result_cache
# if next
if num > int(self.per_page):
data = data[0:-1]
nextpage = abs((int(number)+int(self.per_page))/int(self.per_page))+1
else:
nextpage = None
# if prev
if int(number) > 0:
if int(number) < int(self.per_page):
prevpage = 0
else:
prevpage = abs(int(int(number)-int(self.per_page))/int(self.per_page))+1
else:
prevpage = None
return Page(data,nextpage,prevpage,self)
def _get_num_pages(self):
return self.cur_pages
num_pages = property(_get_num_pages)
def _get_num_per_page(self):
return self.per_page
per_pages = property(_get_num_per_page)
class Page(object):
def __init__(self,object_list,next_page,prev_page,paginator):
self.object_list = object_list
self.next_number = next_page
self.previous_number = prev_page
self.paginator = paginator
def has_next(self):
if self.next_number is None:
return False
else:
return True
def has_previous(self):
if self.previous_number is None:
return False
else:
return True
def next_page_number(self):
return self.next_number
def previous_page_number(self):
return self.previous_number
pass
class PageNotAnInteger(InvalidPage):
pass
class EmptyPage(InvalidPage):
pass
class Paginator(object):
def __init__(self,object_list,per_page):
self.object_list = object_list
self.per_page = per_page
def page(self,number=1):
self.cur_pages = number
if self.cur_pages < 1 :
number = 1
number = (int(number)-1)*int(self.per_page)
max = int(number)+int(self.per_page)+1
data = self.object_list[number:max]
num = data.__len__()
data = data._result_cache
# if next
if num > int(self.per_page):
data = data[0:-1]
nextpage = abs((int(number)+int(self.per_page))/int(self.per_page))+1
else:
nextpage = None
# if prev
if int(number) > 0:
if int(number) < int(self.per_page):
prevpage = 0
else:
prevpage = abs(int(int(number)-int(self.per_page))/int(self.per_page))+1
else:
prevpage = None
return Page(data,nextpage,prevpage,self)
def _get_num_pages(self):
return self.cur_pages
num_pages = property(_get_num_pages)
def _get_num_per_page(self):
return self.per_page
per_pages = property(_get_num_per_page)
class Page(object):
def __init__(self,object_list,next_page,prev_page,paginator):
self.object_list = object_list
self.next_number = next_page
self.previous_number = prev_page
self.paginator = paginator
def has_next(self):
if self.next_number is None:
return False
else:
return True
def has_previous(self):
if self.previous_number is None:
return False
else:
return True
def next_page_number(self):
return self.next_number
def previous_page_number(self):
return self.previous_number
FROM_UNIXTIME
UNIX_TIMESTAMP
UNIX_TIMESTAMP
今天编译tokyo Cabinet 出现错误/usr/lib/crt1.o(.text+0x81): In function `_start':
Posted in Unix/Linux/FreeBsd on 2009/04/09 / 评论(0) »
/usr/lib/crt1.o(.text+0x81): In function `_start':
#wget http://tokyocabinet.sourceforge.net/tokyocabinet-1.4.14.tar.gz
#tar -xzvf tokyocabinet-1.4.14.tar.gz
# cd tokyocabinet-1.4.14
# ./configure
# make 出错(/usr/lib/crt1.o(.text+0x81): In function `_start':) 改用虾米 gmake 安装完毕
# gmake
# make install
#wget http://tokyocabinet.sourceforge.net/tokyocabinet-1.4.14.tar.gz
#tar -xzvf tokyocabinet-1.4.14.tar.gz
# cd tokyocabinet-1.4.14
# ./configure
# make 出错(/usr/lib/crt1.o(.text+0x81): In function `_start':) 改用虾米 gmake 安装完毕
# gmake
# make install
www.yofus.com
冲印
规格 市场价 有福价 过塑/张 备注
3R ¥1.00 ¥0.35 ¥0.20 3.5x5英寸
4R ¥1.10 ¥0.45 ¥0.30 4x6英寸
4D ¥1.20 ¥0.55 ¥0.30 4.5x6英寸
6R ¥5.00 ¥1.60 0.70 6X8英寸
8R ¥15.00 ¥3.80 ¥1.50 8X10英寸
5R ¥3.00 ¥0.90 ¥0.50 5X7英寸
2R ¥4.00 ¥0.88 ¥0.20 2x3英寸
8x12 ¥18.00 ¥8.00 ¥1.50 8x12英寸
12x18 ¥40.00 ¥18.00 ¥5.00 12x18英寸
小一寸 ¥10.00 ¥5.00 以版为冲印单位,每版8张
大一寸 ¥10.00 ¥5.00 以版为冲印单位,每版4张
温馨提示:有福网上冲印,全部采用柯达专业相纸,50年质量保证!
kachayu.com
产品价格 价格(每张)
4x6" 0.60元
5x7" 1.30元
8x10" 4.90元
皮夹照片(四张一套) 0.90元
拼盘照片 4x6 0.90元
拼盘照片 5x7 1.90元
拼盘照片 8x10 5.90元
配送费: 冲印并扩印
支付宝等 货到付款:送货上门
1 - 30 9.90元 10.90元
31 - 100 7.90元 8.90元
101 - 1100 4.90元 5.90元
1101 张以上,每一百张请加 4.90元 5.90元
冲印
规格 市场价 有福价 过塑/张 备注
3R ¥1.00 ¥0.35 ¥0.20 3.5x5英寸
4R ¥1.10 ¥0.45 ¥0.30 4x6英寸
4D ¥1.20 ¥0.55 ¥0.30 4.5x6英寸
6R ¥5.00 ¥1.60 0.70 6X8英寸
8R ¥15.00 ¥3.80 ¥1.50 8X10英寸
5R ¥3.00 ¥0.90 ¥0.50 5X7英寸
2R ¥4.00 ¥0.88 ¥0.20 2x3英寸
8x12 ¥18.00 ¥8.00 ¥1.50 8x12英寸
12x18 ¥40.00 ¥18.00 ¥5.00 12x18英寸
小一寸 ¥10.00 ¥5.00 以版为冲印单位,每版8张
大一寸 ¥10.00 ¥5.00 以版为冲印单位,每版4张
温馨提示:有福网上冲印,全部采用柯达专业相纸,50年质量保证!
kachayu.com
产品价格 价格(每张)
4x6" 0.60元
5x7" 1.30元
8x10" 4.90元
皮夹照片(四张一套) 0.90元
拼盘照片 4x6 0.90元
拼盘照片 5x7 1.90元
拼盘照片 8x10 5.90元
配送费: 冲印并扩印
支付宝等 货到付款:送货上门
1 - 30 9.90元 10.90元
31 - 100 7.90元 8.90元
101 - 1100 4.90元 5.90元
1101 张以上,每一百张请加 4.90元 5.90元
下载文件 



