复制代码
  1. from django.shortcuts import render,HttpResponse
  2.  
  3. # Create your views here.
  4. from app01.models import *
  5. from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
  6.  
  7. def index(request):
  8.  
  9. '''
  10. 批量导入数据:
  11.  
  12. Booklist=[]
  13. for i in range(100):
  14. Booklist.append(Book(title="book"+str(i),price=30+i*i))
  15. Book.objects.bulk_create(Booklist)
  16. '''
  17.  
  18. '''
  19. 分页器的使用:
  20.  
  21. book_list=Book.objects.all()
  22.  
  23. paginator = Paginator(book_list, 10)
  24.  
  25. print("count:",paginator.count) #数据总数
  26. print("num_pages",paginator.num_pages) #总页数
  27. print("page_range",paginator.page_range) #页码的列表
  28.  
  29.  
  30.  
  31. page1=paginator.page(1) #第1页的page对象
  32. for i in page1: #遍历第1页的所有数据对象
  33. print(i)
  34.  
  35. print(page1.object_list) #第1页的所有数据
  36.  
  37.  
  38. page2=paginator.page(2)
  39.  
  40. print(page2.has_next()) #是否有下一页
  41. print(page2.next_page_number()) #下一页的页码
  42. print(page2.has_previous()) #是否有上一页
  43. print(page2.previous_page_number()) #上一页的页码
  44.  
  45.  
  46.  
  47. # 抛错
  48. #page=paginator.page(12) # error:EmptyPage
  49.  
  50. #page=paginator.page("z") # error:PageNotAnInteger
  51.  
  52. '''
  53.  
  54.  
  55. book_list=Book.objects.all()
  56.  
  57. paginator = Paginator(book_list, 10)
  58. page = request.GET.get('page',1)
  59. currentPage=int(page)
  60.  
  61.  
  62. try:
  63. print(page)
  64. book_list = paginator.page(page)
  65. except PageNotAnInteger:
  66. book_list = paginator.page(1)
  67. except EmptyPage:
  68. book_list = paginator.page(paginator.num_pages)
  69.  
  70.  
  71. return render(request,"index.html",{"book_list":book_list,"paginator":paginator,"currentPage":currentPage})
复制代码
复制代码
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"
    integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
  7. </head>
  8. <body>
  9.  
  10. <div class="container">
  11.  
  12. <h4>分页器</h4>
  13. <ul>
  14.  
  15. {% for book in book_list %}
  16. <li>{{ book.title }} -----{{ book.price }}</li>
  17. {% endfor %}
  18.  
  19. </ul>
  20.  
  21.  
  22. <ul class="pagination" id="pager">
  23.  
  24. {% if book_list.has_previous %}
  25. <li class="previous"><a href="/index/?page={{ book_list.previous_page_number }}">上一页</a></li>
  26. {% else %}
  27. <li class="previous disabled"><a href="#">上一页</a></li>
  28. {% endif %}
  29.  
  30.  
  31. {% for num in paginator.page_range %}
  32.  
  33. {% if num == currentPage %}
  34. <li class="item active"><a href="/index/?page={{ num }}">{{ num }}</a></li>
  35. {% else %}
  36. <li class="item"><a href="/index/?page={{ num }}">{{ num }}</a></li>
  37.  
  38. {% endif %}
  39. {% endfor %}
  40.  
  41.  
  42.  
  43. {% if book_list.has_next %}
  44. <li class="next"><a href="/index/?page={{ book_list.next_page_number }}">下一页</a></li>
  45. {% else %}
  46. <li class="next disabled"><a href="#">下一页</a></li>
  47. {% endif %}
  48.  
  49. </ul>
  50. </div>
  51.  
  52.  
  53.  
  54. </body>
  55. </html>
复制代码
复制代码
  1. def index(request):
  2.  
  3.  
  4. book_list=Book.objects.all()
  5.  
  6. paginator = Paginator(book_list, 15)
  7. page = request.GET.get('page',1)
  8. currentPage=int(page)
  9.  
  10. # 如果页数十分多时,换另外一种显示方式
  11. if paginator.num_pages>11:
  12.  
  13. if currentPage-5<1:
  14. pageRange=range(1,11)
  15. elif currentPage+5>paginator.num_pages:
  16. pageRange=range(currentPage-5,paginator.num_pages+1)
  17.  
  18. else:
  19. pageRange=range(currentPage-5,currentPage+6)
  20.  
  21. else:
  22. pageRange=paginator.page_range
  23.  
  24.  
  25. try:
  26. print(page)
  27. book_list = paginator.page(page)
  28. except PageNotAnInteger:
  29. book_list = paginator.page(1)
  30. except EmptyPage:
  31. book_list = paginator.page(paginator.num_pages)
  32.  
  33.  
  34. return render(request,"index.html",locals())
复制代码

 

复制代码
  1. from django.shortcuts import render,HttpResponse
  2.  
  3. # Create your views here.
  4. from app01.models import *
  5. from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
  6.  
  7. def index(request):
  8.  
  9. '''
  10. 批量导入数据:
  11.  
  12. Booklist=[]
  13. for i in range(100):
  14. Booklist.append(Book(title="book"+str(i),price=30+i*i))
  15. Book.objects.bulk_create(Booklist)
  16. '''
  17.  
  18. '''
  19. 分页器的使用:
  20.  
  21. book_list=Book.objects.all()
  22.  
  23. paginator = Paginator(book_list, 10)
  24.  
  25. print("count:",paginator.count) #数据总数
  26. print("num_pages",paginator.num_pages) #总页数
  27. print("page_range",paginator.page_range) #页码的列表
  28.  
  29.  
  30.  
  31. page1=paginator.page(1) #第1页的page对象
  32. for i in page1: #遍历第1页的所有数据对象
  33. print(i)
  34.  
  35. print(page1.object_list) #第1页的所有数据
  36.  
  37.  
  38. page2=paginator.page(2)
  39.  
  40. print(page2.has_next()) #是否有下一页
  41. print(page2.next_page_number()) #下一页的页码
  42. print(page2.has_previous()) #是否有上一页
  43. print(page2.previous_page_number()) #上一页的页码
  44.  
  45.  
  46.  
  47. # 抛错
  48. #page=paginator.page(12) # error:EmptyPage
  49.  
  50. #page=paginator.page("z") # error:PageNotAnInteger
  51.  
  52. '''
  53.  
  54.  
  55. book_list=Book.objects.all()
  56.  
  57. paginator = Paginator(book_list, 10)
  58. page = request.GET.get('page',1)
  59. currentPage=int(page)
  60.  
  61.  
  62. try:
  63. print(page)
  64. book_list = paginator.page(page)
  65. except PageNotAnInteger:
  66. book_list = paginator.page(1)
  67. except EmptyPage:
  68. book_list = paginator.page(paginator.num_pages)
  69.  
  70.  
  71. return render(request,"index.html",{"book_list":book_list,"paginator":paginator,"currentPage":currentPage})
复制代码
复制代码
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"
    integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
  7. </head>
  8. <body>
  9.  
  10. <div class="container">
  11.  
  12. <h4>分页器</h4>
  13. <ul>
  14.  
  15. {% for book in book_list %}
  16. <li>{{ book.title }} -----{{ book.price }}</li>
  17. {% endfor %}
  18.  
  19. </ul>
  20.  
  21.  
  22. <ul class="pagination" id="pager">
  23.  
  24. {% if book_list.has_previous %}
  25. <li class="previous"><a href="/index/?page={{ book_list.previous_page_number }}">上一页</a></li>
  26. {% else %}
  27. <li class="previous disabled"><a href="#">上一页</a></li>
  28. {% endif %}
  29.  
  30.  
  31. {% for num in paginator.page_range %}
  32.  
  33. {% if num == currentPage %}
  34. <li class="item active"><a href="/index/?page={{ num }}">{{ num }}</a></li>
  35. {% else %}
  36. <li class="item"><a href="/index/?page={{ num }}">{{ num }}</a></li>
  37.  
  38. {% endif %}
  39. {% endfor %}
  40.  
  41.  
  42.  
  43. {% if book_list.has_next %}
  44. <li class="next"><a href="/index/?page={{ book_list.next_page_number }}">下一页</a></li>
  45. {% else %}
  46. <li class="next disabled"><a href="#">下一页</a></li>
  47. {% endif %}
  48.  
  49. </ul>
  50. </div>
  51.  
  52.  
  53.  
  54. </body>
  55. </html>
复制代码
复制代码
  1. def index(request):
  2.  
  3.  
  4. book_list=Book.objects.all()
  5.  
  6. paginator = Paginator(book_list, 15)
  7. page = request.GET.get('page',1)
  8. currentPage=int(page)
  9.  
  10. # 如果页数十分多时,换另外一种显示方式
  11. if paginator.num_pages>11:
  12.  
  13. if currentPage-5<1:
  14. pageRange=range(1,11)
  15. elif currentPage+5>paginator.num_pages:
  16. pageRange=range(currentPage-5,paginator.num_pages+1)
  17.  
  18. else:
  19. pageRange=range(currentPage-5,currentPage+6)
  20.  
  21. else:
  22. pageRange=paginator.page_range
  23.  
  24.  
  25. try:
  26. print(page)
  27. book_list = paginator.page(page)
  28. except PageNotAnInteger:
  29. book_list = paginator.page(1)
  30. except EmptyPage:
  31. book_list = paginator.page(paginator.num_pages)
  32.  
  33.  
  34. return render(request,"index.html",locals())
复制代码

 

版权声明:本文为yyyyyyyyyy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yyyyyyyyyy/p/9287278.html