Django學習系列之django分頁

2022-07-23 06:30:27 字數 2018 閱讀 2030

from

django.core.paginator import paginator

objects = post.objects.filter(status='published') #從資料庫中取出所有status=published狀態的文章p = paginator(objects,3

) #例項化paginator物件,3條資料為一頁

print(p.count) #一共有多少條資料

print(p.num_pages) #一共可以分為多少頁

page1 = p.page(1

) #取第一頁的資料

page2 = p.page(2

) #取第二頁的資料

print(page2.has_previous) #判斷第二分頁是否有前一頁,有則返回true,否則false

views.py

from

django.shortcuts import render,get_object_or_404

from

django.core.paginator import paginator, pagenotaninteger,emptypage

# create your views here.

from

blog.models import post

def post_list(request):

object_list = post.objects.filter(status='

published')

#每頁顯示3個

paginator = paginator(object_list,3

) #獲取前端傳過來的要訪問的頁面數,比如說去第一頁,就傳過來1

page = request.get.get('

page')

print(page)

try:

#比如說第一頁,就返回第一頁的資料

posts =paginator.page(page)

except pagenotaninteger:

#如果傳過來的頁面數不是整數,就返回第一頁

posts = paginator.page(1

) except emptypage:

#如果傳過來的頁面數超出範圍,就返回最有一夜

posts =paginator.page(paginator.num_pages)

return render(request,'

blog/post/list.html

',)

list.html

class="

pagination

">

class="

step-links

#發乙個get請求到views.py的post_list函式,比如

?page=1,就是127.0.0.1:8000/blog?page=1,去第一頁的意思

"?page=}

class="

current

">

#page 2 of 3,意思就是目前在第二頁,一共有三頁. post.number返回當前在第幾頁,num_pages返回一共有多少頁

page } of }.

#發乙個get請求到views.py的post_list函式,比如

?page=2,就是127.0.0.1:8000/blog?page=2,去第二頁的意思

"?page=}

流程:

------->這個是效果圖

post_list函式通過[request.get.get('page')]獲取前端通過get請求傳過來的頁碼數,通過paginator.page(page),其實就是paginator.page(1)把第1頁的資料返回並渲染list.html

Django學習系列之CSRF

什麼是csrf 你的 會以為這個請求是使用者自己發來的,其實呢,這個請求是那個惡意 偽造的 django提供的csrf防護機制 django 第一次響應來自某個客戶端的請求時,會在伺服器端隨機生成乙個 token,把這個 token 放在 cookie 裡。然後每次 post 請求都會帶上這個 to...

ubuntu刪除django,安裝django

刪除 終端輸入 python c from distutils.sysconfig import get python lib print get python lib 得到路徑 usr lib python2.7 dist packages 刪除路徑下的django與egg檔案 命令 sudo r...

Django系列學習之五

後台管理頁面做好了,接下來就要做公共訪問的頁面了。當我們剛剛在瀏覽器中輸入 之後,瀏覽器顯示出了後台管理的登入頁面,那有沒有同學想過這個伺服器是怎麼給我們找到這個頁面並返回呢?admin 是我們想要請求得頁面,伺服器在收到這個請求之後,就一定對應著乙個處理動作,這個處理動作就是幫我的產生頁面內容並返...