django分页

views函数:

@login_required(login_url='/users/login/')
def device_list(request):
    username = request.session.get('user', '')
    all_device = Device.objects.all()
    paginator = Paginator(all_device, 10)
    page_num = request.GET.get('page', 1)
    d_list = paginator.page(int(page_num))
    return render(request, 'device_list.html', locals())

前端:(bootstrap)

                        <nav aria-label="Page navigation">
                            <ul class="pagination">
                                {% if d_list.has_previous %}
                                <li>
                                  <a href="/device/list?page={{ d_list.previous_page_number }}" aria-label="Previous">
                                    <span aria-hidden="true">上一页</span>
                                  </a>
                                </li>
                                {% else %}
                                <li class="disabled">
                                  <a aria-label="Previous">
                                    <span aria-hidden="true">上一页</span>
                                  </a>
                                </li>
                                {% endif %}
                              
                              {% for p_num in paginator.page_range %}
                                {% if p_num == d_list.number %}
                                <li class="active"><a href="#">{{ p_num }}</a></li>
                                {% else %}
                                <li><a href="/device/list?page={{ p_num }}">{{ p_num }}</a></li>
                                {% endif %}
                              {% endfor %}

                              
                                {% if d_list.has_next %}
                                <li>
                                  <a href="/device/list?page={{ d_list.next_page_number }}" aria-label="Next">
                                      <span aria-hidden="true">下一页</span>
                                  </a>
                                </li>
                                {% else %}
                                <li class="disabled">
                                  <a aria-label="Next">
                                    <span aria-hidden="true">下一页</span>
                                  </a>
                                </li>
                                {% endif %}
                              
                            </ul>
                        </nav>

效果:

原文地址:https://www.cnblogs.com/yizhipanghu/p/15381216.html