• Django学习笔记(6)分页


    django自带分页

     1 from django.core.paginator import Paginator
     2 l = range(1,51)
     3 page_obj = Paginator(l,20)
     4 print(list(page_obj.page(2)))#获取第2页数据
     5 print(page_obj.count)#总共多少条数据
     6 print(page_obj.num_pages)#总共分了多少页
     7 
     8 print(page_obj.page_range)#分页范围
     9 cur_page = page_obj.page(2)
    10 print(cur_page.has_previous())#判断是否有上一页
    11 print(cur_page.previous_page_number())#返回上一页的页码,没有上一页会报错
    12 print(cur_page.has_next())#判断是否有下一页
    13 print(cur_page.next_page_number())#返回下一页的页码,没有下一页会报错
    14 print(cur_page.has_other_pages())#判断是否有其他页,对只有一页数据判断
    15 print(cur_page.paginator)#获取当前页的分页对象也就是page_obj

    view.py 视图中使用分页

     1 from django.core.paginator import Paginator
     2 from .const import page_size
     3 # Create your views here.
     4 def index(request):#首页
     5     #数据来源数据库时,要引用到这个表的这个类
     6     # catagories = Category.objects.filter(is_delete=False)#获取所有数据
     7     page = request.GET.get('page',1)#从url获取page值,获取不到时取1
     8     limit = request.GET.get('limit',page_size)
     9     article = Article.objects.filter(is_delete=False)
    10     page_obj = Paginator(article,limit)
    11     page_data = page_obj.page(page)
    12     data = {'articles':page_data}
    13     return render(request,'index.html',data)#引用数据需要通过字典data引用

    模板html中使用分页样式

     1 {% if articles.has_other_pages %}
     2             <div class="pagelist">
     3             {% if articles.has_previous %}
     4                 <a class="allpage" href="/index?page={{ articles.previous_page_number }}"><b>上一页</b></a>&nbsp;&nbsp;
     5             {% endif %}
     6             {% for page_num in articles.paginator.page_range %}
     7                 <a href="/index?page={{ page_num }}&limit=10" class="curPage">{{page_num}}</a>&nbsp;&nbsp;
     8             {% endfor %}
     9             {% if articles.has_next %}
    10                 <a href="#" onclick="page(2)">下一页</a>
    11             {% endif %}
    12             </div>
    13         {% endif %}
  • 相关阅读:
    Spark Streaming反压机制
    spark submit参数及调优
    kafka中的配额管理(限速)机制
    Kafka限流
    BlockingQueue
    Android 更改userdata的大小
    visual studio 2019 error MSB3073 exited with code 1
    ARM 链接脚本分析
    Android Bluetooth hci 命令分析
    Android 查看蓝牙hci日志
  • 原文地址:https://www.cnblogs.com/bugoobird/p/13355070.html
Copyright © 2020-2023  润新知