自定义分页器
一、简单版本
# html
{% for user_obj in user_all %}
{ { user_obj.username }}
{% endfor %}
# urls.py
from app01 import views
urlpatterns = [
url(r'^current_page/', views.current_page),
]
# views.py
def current_page(request):
# 获取页面想要访问的页码数
current_pate = request.GET.get('page', 1)
# 转成整型
current_pate = int(current_pate)
# 每页显示9条数据
per_page_num = 9
# 开始数据
start_page = (current_pate - 1) * per_page_num
end_page = current_pate * per_page_num
user_all = models.Userinfo.objects.all()[start_page: end_page]
return render(request, '02current_page.html', locals())
页码分析:
"""
per_page_num = 10
current_page start_page end_page
1 0 10
2 10 20
3 20 30
4 30 40
per_page_num = 5
current_page start_page end_page
1 0 5
2 5 10
3 10 15
4 15 20
start_page = (current_page - 1) * per_page_num
end_page = current_page * per_page_num
"""
开始位置:页码减一乘以要显示的条数
结束位置:页码乘以要显示的条数
二、添加分页标签
{% for user in user_obj %}
{ { user.username }}
{% endfor %}