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
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句