django分页
分页的属性
from django.core.paginator import Paginator,EmptyPage,PageNotAnInteger
def fengye(request):
course=['语文','数学','英语','政治','美术','历史','体育','python','java','c++'];
p=Paginator(course,3)
print(p.count)
print(p.num_pages)
print(p.page_range)
print(p.per_page)
p1=p.page(1)
p2=p.page(2)
print(p1.object_list)
print(p2.object_list)
print(p1.number)
print(p2.number)
return HttpResponse('分页操作成功')
分页的方法
print(p1.has_next())
print(p1.has_previous())
print(p1.has_other_pages())
print(p1.next_page_number())
print(p2.previous_page_number())
print(p1.start_index())
print(p2.start_index())
print(p1.end_index())
print(p2.end_index())
return HttpResponse('分页操作成功')
博客分页操作
def blog_list(request):
blog_list=BlogModel.objects.all();
p=Paginator(blog_list,5)
page=request.GET.get('page')
try:
pages=p.page(page)
except PageNotAnInteger:
pages=p.page(1)
except EmptyPage:
pages=p.page(p.num_pages)
return render(request, 'blog/demo_list.html',context={'pages':pages})
{
{% if pages.has_previous %}
<a href="{% url 'blog_list' %}?page={{ pages.previous_page_number }}">上一页</a>
{% endif %}
{
{% for num in pages.paginator.page_range %}
{% if num == pages.number %}
<a href="{% url 'blog_list' %}?page={{ num }}" style="font-size: 15px">
{% else %}
<a href="{% url 'blog_list' %}?page={{ num }}">{{ num }}</a>
{% endif %}
{% endfor %}
{
{% if pages.has_next %}
<a href="{% url 'blog_list' %}?page={{ pages.next_page_number }}">下一页</a>
{% endif %}