Python全系列 教程
3567个小节阅读:5930.9k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
django自带的分页器 paginator
views.py
xxxxxxxxxx
#导入分页所需要的包
from django.core.paginator import Paginator
from netproject import settings
# Create your views here.
# 新增 1 2 3 4 5 6 7 8 这样的分页栏函数
def get_page_range_by_page_and_max_page(page, max_page, num=10):
min = page-int(num/2)
min = min if min > 1 else 1
max = min + num - 1
max = max if max < max_page else max_page
return range(min, max + 1)
#商品列表
def index(request,categoryid=2,page_num=1):
#1.获取所有分类
categoryList = Category.objects.all().order_by('id')
#2.根据分类id查询该分类下的所有商品
goodsList = Goods.objects.filter(category_id=categoryid)
#创建Paginator
paginator = Paginator(object_list=goodsList,per_page=settings.PER_PAGE_NUMBER)
#获取当前page_num页的数据
goods_page = paginator.get_page(page_num)
#设置传递的参数
context = {
'categoryList':categoryList,
'goods_page':goods_page,
'currentCid':categoryid,
'page_range': get_page_range_by_page_and_max_page(goods_page.number, paginator.num_pages)
}
return render(request,'goodsapp/index.html',context)
urls.py
xxxxxxxxxx
urlpatterns = [
path('', views.index,name = 'goods_index'), #商品列表页
path('category/<int:categoryid>/', views.index,name = 'goods_categoryid_index'), #商品列表页
path('category/<int:categoryid>/page/<int:page_num>/', views.index,name = 'goods_categoryid_page_index'), #商品列表页
]
index.html
xxxxxxxxxx
<div id="pager" style="text-align: center; font-size: 16px; overflow: hidden; margin-top: 10px;">
<a href="/category/{{ currentCid }}/page/1">
<span>首页</span>
</a>
{% if goods_page.has_previous %}
<a href="/category/{{ currentCid }}/page/{{ goods_page.previous_page_number }}">
<span>上一页</span>
</a>
{% endif %}
{% for pg in page_range %}
{% if pg == goods_page.number %}
<strong class = 'redA'>{{ pg }}</strong>
{% else %}
<a href="/category/{{ currentCid }}/page/{{ pg }}">{{ pg }}</a>
{% endif %}
{% endfor %}
{% if goods_page.has_next %}
<a href="/category/{{ currentCid }}/page/{{ goods_page.next_page_number }}">
<span>下一页</span>
</a>
{% endif %}
<a href="/category/{{ currentCid }}/page/{{ goods_page.paginator.num_pages }}">
<span>末页</span>
</a>
</div>
页面中添加样式
xxxxxxxxxx
{% block headerjs%}
<style>
.redA{
color: red;
font-size:28px;
}
</style>
{% endblock %}