django分页代码举例

来源:互联网 发布:windows密码忘了怎么办 编辑:程序博客网 时间:2024/06/11 11:33
from django.core.paginator import Paginator
>>> objects = ['john', 'paul', 'george', 'ringo']>>> p = Paginator(objects, 2) >>> p.count4>>> p.num_pages2>>> type(p.page_range)  # `<type 'rangeiterator'>` in Python 2.<class 'range_iterator'>>>> p.page_rangerange(1, 3) >>> page1 = p.page(1)>>> page1<Page 1 of 2>>>> page1.object_list['john', 'paul'] >>> page2 = p.page(2)>>> page2.object_list['george', 'ringo']>>> page2.has_next()False>>> page2.has_previous()True>>> page2.has_other_pages()True>>> page2.next_page_number()Traceback (most recent call last):...EmptyPage: That page contains no results>>> page2.previous_page_number()1>>> page2.start_index()3>>> page2.end_index() 4 >>> p.page(0)Traceback (most recent call last):...EmptyPage: That page number is less than 1>>> p.page(3)Traceback (most recent call last):...EmptyPage: That page contains no results


views

from django.core.paginator import Paginator, EmptyPage, PageNotAnIntegerfrom django.shortcuts import render def listing(request):    contact_list = Contacts.objects.all()    paginator = Paginator(contact_list, 25) # Show 25 contacts per page     page = request.GET.get('page')    try:        contacts = paginator.page(page)    except PageNotAnInteger:        # If page is not an integer, deliver first page.        contacts = paginator.page(1)    except EmptyPage:        # If page is out of range (e.g. 9999), deliver last page of results.        contacts = paginator.page(paginator.num_pages)     return render(request, 'list.html', {'contacts': contacts})


html代码

{% for contact in contacts %}    {# Each "contact" is a Contact model object. #}    {{ contact.full_name|upper }}<br />    ...{% endfor %} <div class="pagination">    <span class="step-links">        {% if contacts.has_previous %}            <a href="?page={{ contacts.previous_page_number }}">previous</a>        {% endif %}         <span class="current">            Page {{ contacts.number }} of {{ contacts.paginator.num_pages }}.        </span>         {% if contacts.has_next %}            <a href="?page={{ contacts.next_page_number }}">next</a>        {% endif %}    </span></div>


时间比较急,先写这么多了。。。敲打