Django-Mysql數據庫查詢並將查詢結果分頁顯示




# views.py
def search(request):
    if request.method == "GET":  # 如果是翻頁將會進入到get方式中
        name = request.session.get('name')
         # 進行數據庫查詢
        content = Book.objects.filter(name=name)#這里返回的是多條數據
        if content.exists():
           paginator = Paginator(content, 5)   # 每頁顯示5條
           try:
                 num = request.GET.get('index', 1)  # 頁面連接,用於翻頁
                 number = paginator.page(num)
           except PageNotAnInteger:
                 number = paginator.page(1)
           except EmptyPage:
                 number = paginator.page(paginator.num_pages)
           return render(request,'first.html','paginator':'paginator')
        return render(request,'first.html')

    else:
        name = request.POST.get('name')
        request.session['name'] = name   # POST 方式中用於接收前台數據並存入session
        # 進行數據庫查詢
        content = Book.objects.filter(name=name)#這里返回的是多條數據
        if content.exists():
              paginator = Paginator(content, 5)   # 每頁顯示5條
              try:
                 num = request.GET.get('index', 1)  # 頁面連接,用於翻頁
                 number = paginator.page(num)
              except PageNotAnInteger:
                 number = paginator.page(1)
              except EmptyPage:
                 number = paginator.page(paginator.num_pages)
              return render(request,'first.html','paginator':'paginator')
         return render(request,'first.html')
        


<!--first.html-->
{% for item in page.object_list%}
{{item.name}}
{%endfor%}

<!--分頁部分-->
 <div>
                        <nav aria-label="Page navigation">
                            <ul class="pagination">
                                {% if page.has_previous %}
                                    <li>
                                        <a href="?index={{ page.previous_page_number }}" aria-label="Previous">
                                            <span aria-hidden="true">&laquo;</span>
                                        </a>
                                    </li>
                                {% else %}
                                    <li class="disabled">
                                        <a href="#" aria-label="Previous">
                                            <span aria-hidden="true">&laquo;</span>
                                        </a>
                                    </li>
                                {% endif %}

                                {% for page_number in paginator.page_range %}
                                    {% if page_number == page.number %}
                                        <li class="active"><a href="#">{{ page_number }}</a></li>
                                    {% else %}
                                        <li><a href="?index={{ page_number }}">{{ page_number }}</a></li>
                                    {% endif %}

                                {% endfor %}
                                {% if page.has_next %}
                                    <li>
                                        <a href="?index={{ page.next_page_number }}" aria-label="Next">
                                            <span aria-hidden="true">&raquo;</span>
                                        </a>
                                    </li>
                                {% else %}
                                    <li class="disabled">
                                        <a href="#" aria-label="Next">
                                            <span aria-hidden="true">&raquo;</span>
                                        </a>
                                    </li>
                                {% endif %}

                            </ul>
                        </nav>

                    </div>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM