from django.core.paginator import Paginator
# 分页模块
from blog.models import Article,Category,Tag
# 博客
post = Article.objects.all() # 博客所有
page=Paginator(post, 9) # 将文章数分页(9)
page.count # 总数据量
page.num_pages # 分页数
page.page_range # 显示的是页数的标记 就是按钮的数目
views.py
from django.core.paginator import Paginator
from django.views import View
class IndexView(View):
"""
cbv 基于类视图
"""
def get(self, request):
post_all = Article.objects.all() # 博客所有
page = Paginator(post_all, 5) # 将文章数分页(2)
page_num = page.num_pages # 分页数总数
page_range = page.page_range # 页码的列表数目
page_first = page.page(1) # 第1页的page对象
# page_first_list = page_first.object_list # 首页展示文章条数
pageRange = range(1, 6) # 显示分页按钮数量
page_count = page.count # 总数据量
try:
# GET请求方式,get()获取指定Key值所对应的value值
# 获取page的值,url内输入的?page = 页码数 显示你输入的页面数目 默认为第1页
num = request.GET.get('page', 1)
# 获取第几页
number = page.page(1)
except PageNotAnInteger:
# 如果输入的页码数不是整数,那么显示第一页数据
number = page.page(1)
except EmptyPage:
number = page.page(page.num_pages)
currentPage = page.page(num) # 当前页面
article_list = currentPage.object_list
tag_all = [tag for tag in Tag.objects.all()] # tags
if request.user.is_authenticated: # 登录
user_login = True
return render(request, 'index.html', locals())
urls.py
path('', views.IndexView.as_view(), name="index"),
https://www.jianshu.com/p/77a8ea421e22 https://blog.csdn.net/weixin_42134789/article/details/80568089 https://blog.csdn.net/dimples_54/article/details/77995058