fromdjango.utils.safestring import mark_safefromdjango.http.request import querydictclasspagination:"""page: 當前的頁碼數
all_count: 總的資料量
per_num : 每頁顯示的資料量
max_show: 最多顯示的頁碼數"""def __init__(self, page, all_count,params=none, per_num=10, max_show=11):try:
self.page= int(page)if self.page <= 0:
self.page= 1except exception:
self.page= 1# 查詢條件
self.params = params
if not self.params:
self.params = querydict(mutable=true)
# 總的資料量
all_count=all_count
# 每頁顯示的資料量10# 總的頁碼數
total_num, more=divmod(all_count, per_num)ifmore:
total_num+= 1# 最大顯示的頁碼數
half_show= max_show //2
if total_num <=max_show:
page_start= 1page_end=total_numelse:if self.page - half_show <= 0:
# 頁碼的起始值
page_start= 1# 頁碼的終止值
page_end=max_show
elif self.page+ half_show >total_num:
page_end=total_num
page_start= total_num - max_show + 1
else:
# 頁碼的起始值
page_start= self.page -half_show
# 頁碼的終止值
page_end= self.page +half_show
self.page_start=page_start
self.page_end=page_end
self.total_num=total_num
self.start= (self.page - 1) *per_num
self.end= self.page *per_num
@property
def page_html(self):
li_list=if self.page == 1:
«')else:
self.params['page'] = self.page -1 #
«'.format(
self.params.urlencode())) # ?query=13&page=1
for i in range(self.page_start, self.page_end + 1):
self.params['page'] = i # if i ==self.page:
{}'.format(self.params.urlencode(), i))else:
{}'.format(self.params.urlencode(), i))if self.page ==self.total_num:
»')else:
»'.format(
self.params.urlencode()))return mark_safe(''.join(li_list))
python中 python中的 與
這一部分首先要理解python記憶體機制,python中萬物皆物件。對於不可變物件,改變了原來的值,其別名 變數名 繫結到了新值上面,id肯定會改變 對於可變物件,操作改變了值,id肯定會變,而 是本地操作,其值原地修改 對於 號操作,可變物件和不可變物件呼叫的都是 add 操作 對於 號操作,可變...
python中否定for 在python中否定函式
有沒有一種方法可以否定乙個函式,使它返回負數。在我的函式中,我有條件句,每個條件句都讓這個 烏龜 移動。有沒有一種方法可以否定這一點,所以烏龜的每乙個動作都是否定的。我說的是 狀況 在def ttinterpret program interpret program as a tinyturtle ...
python講解 python中with用法講解
我們都知道開啟檔案有兩種方法 f open with open as f 這兩種方法的區別就是第一種方法需要我們自己關閉檔案 f.close 而第二種方法不需要我們自己關閉檔案,無論是否出現異常,with都會自動幫助我們關閉檔案,這是為什麼呢?我們先自定義乙個類,用with來開啟它 class fo...