• Django自带分页


    urls.py

     1 from django.conf.urls import url
     2 from django.contrib import admin
     3 from app01 import views
     4  
     5  
     6 urlpatterns = [
     7  
     8 # 查看django自带的上一页和下一页
     9     url(r'^index.html$', views.index),
    10  
    11 ] 

    views.py

     1 from django.shortcuts import render,HttpResponse
     2 from django.views import View
     3 from app01 import models
     4 from django.core.paginator import Paginator,Page,PageNotAnInteger,EmptyPage
     5 # django自带的分页
     6 def index(request):
     7     """
     8     分页
     9     :param request:
    10     :return:
    11     """
    12     # 往用户信息的数据表内插入300条用户信息
    13     # for i in range(301):
    14     #     name="xuyuanyuan"+str(i)
    15     #     models.Userinfo.objects.create(username=name,age=20,ut_id=2)
    16  
    17     choise_page=request.GET.get("page")
    18     user_list=models.Userinfo.objects.all()
    19     # paginator=Paginator(user_list,10)分页处理,每一页10条数据
    20     paginator=Paginator(user_list,10)
    21     # per_page: 每页显示条目数量
    22     # count:    数据总个数
    23     # num_pages:总页数
    24     # page_range:总页数的索引范围,如: (1,10),(1,200)
    25     # page:     page对象
    26  
    27     try:
    28         result=paginator.page(choise_page)
    29         # print(result)#QuerySet [<Userinfo: Userinfo object>, <Userinfo: Userinfo object>,
    30         # 打印的result是一个个userinfo的对象
    31         # print(result.object_list)
    32     except PageNotAnInteger as e:
    33         result=paginator.page(1)
    34     except EmptyPage as e:
    35         result=paginator.page(1)
    36  
    37     # has_next              是否有下一页
    38     # next_page_number      下一页页码
    39     # has_previous          是否有上一页
    40     # previous_page_number  上一页页码
    41     # object_list           分页之后的数据列表
    42     # number                当前页
    43     # paginator             paginator对象
    44  
    45     return render(request,"index.html",{"result":result})
    View Code

    index.html

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6 </head>
     7 <body>
     8 <h1>用户列表</h1>
     9 <ul>
    10     {% for i in result.object_list %}
    11         <li>姓名:{{ i.username }}</li>
    12     {% endfor %}
    13 </ul>
    14 <div>
    15     {% if result.has_previous %}
    16         <a href="/index.html?page={{ result.previous_page_number }}">上一页</a>
    17     {% endif %}
    18  
    19     {% if result.has_next %}
    20         <a href="/index.html?page={{ result.next_page_number }}">下一页</a>
    21     {% endif %}
    22 </div>
    23 </body>
    24 </html>
    View Code
  • 相关阅读:
    用JLabel显示时间-- JAVA初学者遇到的一个困难
    linux下观看b站视频,解决字体乱码
    fedora21 codeblocks在编辑装态下无法输入
    fedora21安装无线驱动
    Hdu 1053 Entropy
    linux下的压缩解压命令 tar 的简单描述
    表的截断、删除、创建
    列的维护
    非分区表的重组
    创建高效且易于管理的表以及表的管理和维护
  • 原文地址:https://www.cnblogs.com/gz369521/p/7112889.html
Copyright © 2020-2023  润新知