前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django 分页

django 分页

作者头像
以谁为师
发布2019-05-28 20:32:00
6650
发布2019-05-28 20:32:00
举报
文章被收录于专栏:小网管的运维之路

导入模块

代码语言:javascript
复制
from django.core.paginator import Paginator
# 分页模块
from blog.models import Article,Category,Tag
# 博客
代码语言:javascript
复制
post = Article.objects.all() # 博客所有

page=Paginator(post, 9) # 将文章数分页(9)

page.count # 总数据量
page.num_pages # 分页数
page.page_range  # 显示的是页数的标记 就是按钮的数目

views.py

代码语言:javascript
复制
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

代码语言:javascript
复制
    path('', views.IndexView.as_view(), name="index"),

Django-pure-pagination第三方模块

https://www.jianshu.com/p/77a8ea421e22 https://blog.csdn.net/weixin_42134789/article/details/80568089 https://blog.csdn.net/dimples_54/article/details/77995058

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年3月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导入模块
  • Django-pure-pagination第三方模块
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档