django paginator 分頁功能

2022-07-20 16:24:11 字數 2131 閱讀 1810

django 自帶了乙個分頁的功能 ,使用起來很方便 。下面是使用方法 :

views.py

def index(request):

context ={}

article =article.objects.all()

page = request.get.get('

page

',1)

context =get_paginator(article,page)

return render(request, '

home/index.html

',context)

為了讓主函式不要過於複雜,將分頁器的功能分離出來了。

分頁的主** :

from django.core.paginator import

paginator,invalidpage,emptypage,pagenotaninteger

defget_paginator(obj,page):

page_size = 10 #每頁顯示的數量after_range_num = 5before_range_num = 6context ={}

try:

page =int(page)

if page <1:

page = 1

except

valueerror:

page = 1paginator =paginator(obj,page_size)

try:

obj =paginator.page(page)

except

(emptypage,invalidpage,pagenotaninteger):

obj = paginator.page(1)

if page >=after_range_num:

page_range = paginator.page_range[page-after_range_num:page+before_range_num]

else

: page_range = paginator.page_range[0:int(page)+before_range_num]

context[

"page_objects

"]=obj

context[

"page_range

"]=page_range

return context

templates 中如下實現:

<

div

id="content"

>

<

div

id="mainbar"

>

<

div

class

="node_article"

>

<

h3><

a href

=''>}

a>

h3>

<

p>}

p>

div>

<

div>

<

p class

="page_container"

>

<

a href

="?page=}"

title

="pre"

>

a>

<

span

style

="font-size:16px;"

title

="當前頁"

><

b>}

b>

span

>

<

a href

="?page=}"

title

="第}頁"

>}

a>

<

a href

="?page=}"

title

="next"

>

a>

<

b>

}

b>

p>

div>

div>

div>

django Paginator分頁器的基礎用法

from django.core.paginator import paginator def pag test request book obj list models.book.objects.all p paginator book obj list,5 第二個引數 表示每一頁顯示5條資料 p...

vue element echarts 換膚功能

demo中的換膚效果沒有用到css預編譯處理 整體的思路是 預先定義好多套css樣式表分別放到static檔案中,根據按鈕切換在dom上掛載相對應的css,聽上去是個比較笨的方法,下面直接上 2.將預設的主題放在vuex中 import vue from vue import vuex from v...

ios xmpp openfire實現聊天功能

ios使用xmppframework 來實現基本的聊天功能 1.使用xmppstream連線openfire 需要賬戶,密碼和伺服器位址埠一般為5222 bool connect if userid nil pass nil 設定使用者 xmppstream setmyjid xmppjid jid...