分页小例子
views.py
from django.shortcuts import render from booktest.models import * from django.core.paginator import * # 进行分页练习 def herolist(request, pindex): if pindex == '': pindex = '1' list1 = HeroInfo.objects.all() paginator = Paginator(list1, 5) page = paginator.page(int(pindex)) context = {'page': page} return render(request, 'booktest/herolist.html', context)
herolist.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul> {% for hero in page%} <li>{{ hero.hname }}</li> {% endfor %} </ul> <hr> {% for index in page.paginator.page_range %} <a href="/herolist/{{ index }}/">{{ index }}</a> {% endfor %} </body> </html>
配置好url
from django.urls import path, re_path from booktest import views urlpatterns = [ re_path('herolist/(\d*)', views.herolist), ]
urls.py
from django.urls import path, re_path from booktest import views urlpatterns = [ re_path('herolist/(\d+)/', views.herolist), ]
views.py和上面一样
herolist.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul> {% for hero in page%} <li>{{ hero.hname }}</li> {% endfor %} </ul> <hr> {% for index in page.paginator.page_range %} {% if index == page.number %} {{ index }} {% else %} <a href="/herolist/{{ index }}/">{{ index }}</a> {% endif %} {% endfor %} </body> </html>