django中自帶了具有翻頁功能的庫paginator,下面我們一起學習一下,如何用這個庫來寫翻頁功能
我們一般不手動創造page這個類,而是用**paginator.page()**來呼叫
1.類方法
page.start_index
() 返回當前頁上的第乙個物件,相對於分頁列表的所有物件的序號,從1開始。比如,將五個物件的列表分為每頁兩個物件,第二頁的start_index()
會返回3
。
page.end_index
() 返回當前頁上的最後乙個物件,相對於分頁列表的所有物件的序號,從1開始。 比如,將五個物件的列表分為每頁兩個物件,第二頁的end_index()
會返回4
。
2.類屬型
emptypage
:如果查詢的頁面超出範圍,會丟擲emptypage
這個錯誤
pagenotaninteger
:如果獲取的頁碼不是整數,會丟擲pagenotaninteger
這個錯誤
class
turnthepage
(view)
:def
post
(self,request)
:try
: pag = request.post.get(
'page'
,none
)# defects = defects.objects.all()
defects = defects.objects.get_queryset(
).order_by(
'id'
)#我這裡是把他變成字典了,然後再放到列表裡,如果不把他變成列表所傳的必須是可序化,所傳型別可以是列表,元組,查詢集或其他
for i in
range
(len
(defects)):
res_dict =
paginator = paginator(dicts_list,3)
#每頁有三條資料
content = paginator.page(pag)
#獲取的頁碼
content_list = content.object_list#當前頁所有物件列表
# if content.has_other_pages() == true:
# return jsonresponse()
if content.has_next()==
false
:return jsonresponse(
)elif content.has_previous()==
false
:#檢測是否是第一頁
return jsonresponse(
)else
:return jsonresponse(
)#如果獲得頁碼查出範圍就返回第一頁內容
except emptypage:
content = paginator.page(1)
content_list = content.object_list
return jsonresponse(
)#如果獲得的頁碼不是整數就返回第一頁內容
except pagenotaninteger:
content = paginator.page(1)
content_list = content.object_list
return jsonresponse(
)
利用django自帶模組實現登出功能
django框架自帶註冊 登入和登出等常用的使用者模組的功能。在之前的部落格我們已經實現了註冊功能,這次主要介紹一下如何實現登出功能。from django.shortcuts import render,redirect from django.contrib.auth import logout...
使用rlwrap實現SQLplus翻頁功能
rlwrap工具可以解決linux下sqlplus提供瀏覽歷史命令列的功能,和刪除先前輸入錯誤的字母等問題 一 構建rlwap安裝環境 rlwrap依賴於readline,而readline依賴於libtermcap,所以需要先安裝如下幾個包 libtermcap devel readline re...
django自帶的加密模組
加密 from django.contrib.auth.hashers import make password 引數1 需要加密的字串 引數2 是否每次都生成不同的加密串,預設為none,如果給定任意乙個字串,則表示每次生成相同的加密串。引數3 表示加密演算法,常見的加密演算法如下 pbkdf2 ...