django內建了乙個paginator
物件,能將給定的list分成指定的數量分頁.
貼上官方文件的翻譯: 翻譯分頁 / 原文
有兩個物件需要明確:
paginator: 分頁物件,用於管理頁面
page: 頁面物件,用於代表某一頁
先在檢視中引入:
from django.core.paginator import paginator, emptypage, pagenotaninteger
class
postlistview
(tagview):
template_name = 'blog/post/list.html'
paginator_by = 2
# 每頁分多少
page = 1
# 預設頁
defget_context_data
(self, **kwargs):
context = super().get_context_data(**kwargs)
posts = post.objects.filter(status='1') # 獲取物件列表
paginator = paginator(posts, self.paginator_by) # 建立分頁物件
try:
page_obj = paginator.page(self.page) # 獲取某頁面物件
except emptypage:
page_obj = paginator.page(paginator.num_pages)
except pagenotaninteger:
page_obj = paginator.page(1)
context['page'] = page_obj # 設定用於渲染的上下文
return context
defget(self, request, *args, **kwargs):
self.page = request.get.get('page') # 獲取並設定頁碼
return super().get(request, *args, **kwargs)
這樣,就反回了乙個page物件, 並且在前端可以使用了
}div>
class="am-pagination am-pagination-centered">
class="">
href="?page=
}">«a>
li>
class="
am-disabled
">
href="?page=
}">
}a>
li>
href="?page=
}">»a>
li>
ul>
Django專案之 簡單部落格開發
部落格組成 型別備註 文字標題 文字型別 文章摘要 文字型別 文章內容 文字型別 唯一id標記 數值型別 自增 主鍵 發布日期 日期型別 1.定義字段 編寫應用blog中的model.pyfrom django.db import models create your models here.cla...
Hexo部落格發表文章 草稿 新增分類和標籤
本文主要寫了hexo的配置,關於部落格標題這些配置hexo已經有了很詳細的介紹了,這裡不再贅述,本文主要記錄一些我個人認為小白比較容易有疑問的地方,也就是部落格的主要功能,發表文章 新增文章分類和標籤。文章可能還有很多不足,請大家諒解,歡迎大佬提意見。hexo官方中文文件 發文一方面是記錄,另一方面...
Django之部落格系統 自定義認證
前面我們在登入的時候,是通過輸入使用者名稱和密碼來進行認證 user authenticate username cd username password cd password 這個是通過後台設定的django.contrib.auth.backends.modelbackend來生效的。預設的m...