Django擼部落格之新增分頁功能

2021-08-19 14:01:47 字數 1496 閱讀 6637

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...