此分页代码有什么问题?

时间:2019-07-26 07:37:03

标签: python flask pagination

此代码已经完成了分页,但是它是错误的,因为每页显示数据库中的所有项目,其他页面中显示相同的项目

这是路由

@app.route('/shop/page/<int:page_num>')

def shop(page_num):
    products=Product.query.filter
                    (Product.category.has(Product.category_id))
    shopPage=Product.query.paginate
                     (page=page_num,per_page=5,error_out=True)
    return render_template('shop.html',
                     shopPage=shopPage,products=products)

这是分页的HTML代码以及数据库的输出产品

{% block content %}

   <div class="mb-5">
    {% for product in products %}

    <div class="col-4 mt-3 ">
            <div class="card">
                <div class="card-header">
                    <form method="POST" action="{{ url_for('shop') }}" >
                    </form>

                </div>
                <div class="card-body">
                <h5 class="card-title">{{product.name }}</h5>  
                    <p class="card-text"> 
                        <div>Category: {{ product.category.name }}</div>
                        <div>Price: {{ product.price }} $</div>
                        <div>Company:  {{ product.company }}</div>
                    </p>
                </div>       

            </div>    

        </div>


 {% endfor %}


</div>        

 {% for page in shopPage.iter_pages(left_edge=2, right_edge=2, left_current=1, right_current=2) %}

        {% if page %}
        <nav >
                <ul class="pagination ">
                  <li class="page-item ">
                    <a class="page-link" href="{{url_for('shop',page_num=page)}}"  tabindex="-1">{{ page }}</a>
                  </li>

                </ul>
        </nav>

        {% else %}
                ...
        {% endif %}
    {% endfor %}
{% endblock %}

0 个答案:

没有答案