zoukankan      html  css  js  c++  java
  • 分页操作

    进行分页操作需要先导入分页模块,顺便导入了一些异常的函数,方便处理
    from django.core.paginator importPaginator,PageNotAnInteger,InvalidPage,EmptyPage
    paginator =Paginator(item_list,2)这是分页函数的使用
    def index(request):
    try:
    item_list =Item.objects.all().order_by('-date')
    paginator =Paginator(item_list,2)
    try:
    page = int(request.GET.get('page',1))
    item_list = paginator.page(page) 通过paginator.page来取出page第几页的内容
    except(PageNotAnInteger,InvalidPage,EmptyPage):
    item_list = paginator.page(1)如果有错误就返回第一页的内容
    exceptExceptionas e:
    print e
    return render(request,'index.html',locals())
    对不同的操作捕获不同的异常,先进行了排序,再进行了分页
    分页操作还是有挺多的操作的
    <divclass="page">
    {% if item_list.has_previous %}
    <ahref="?page={{ item_list.previous_page_number }}">上一页</a>
    {% endif %}
    第{{ item_list.number }}页/总共{{ item_list.paginator.num_pages }}页
    {% if item_list.has_next %}
    <ahref="?page={{ item_list.next_page_number }}">下一页
    {% endif %}
    </div>
    当前页面对象添加了paginator后有
    item_list.has_previous  item_list.has_next item_list.next_page_number item_list.numbe这几个属性,或者方法
    paginator有item_list.paginator.num_pages
     
     
     
     
    在views.py里面封装分页代码
    因为函数index和函数archive都有分页代码,所以可以把分页代码分装成一个函数来引用
    def getPage(request,article_list):
    paginator = Paginator(article_list,2)
    try:
    page = int(request.GET.get('page',1))
    article_list = paginator.page(page)
    except (EmptyPage,InvalidPage,PageNotAnInteger):
    article_list = paginator.page(1)
    return article_list
    因为始终是对取出来的内容进行的修改所以就直接返回article_list,在article_list当中,还需要用到request,
    所以这里需要传入request
    archive.html和index.html都有上一页,下一页
    ,所以可以Include提取出来
    新建一个pagination.html把分页的代码直接复制进去,在到相应的位置,以{% include '
    pagination.html' %}代替
    然后发现archive的页面在按下一页后,参数没有传递过去,所以需要一个判断拼接字符串
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     





  • 相关阅读:
    ASP.NET Core教程:ASP.NET Core使用AutoMapper
    C#:C#调用WebService
    EntityFrameworkCore教程:更新时间映射
    EntityFrameworkCore教程:表名映射
    EntityFrameworkCore教程:Data-Seeding(种子数据)
    EntityFrameworkCore教程:生成数据库表
    EntityFrameworkCore教程:单元测试
    OAF_文件系列5_实现OAF解析XML文件javax.xml.parsers(案例)
    OAF_文件系列4_实现OAF上传显示数据库动态图片Image(案例)
    OAF_文件系列3_实现OAF多行表中附件功能AttachmentImage(案例)
  • 原文地址:https://www.cnblogs.com/wuqingzangyue/p/5749460.html
Copyright © 2011-2022 走看看