我遇到一个问题,当我达到查询的限制/最大值时,我试图停止分页。由于我对数据结构的了解非常少,我想问您,解决这个问题的最佳解决方案是什么
app.py:
@app.route('/electronics/')
@app.route('/electronics/<page>/<limit>')
def electronics(page=1, limit=6):
page=int(page)
limit=int(limit)
start_index = page * limit - limit
end_index = start_index + 6
all_products = mongo.db.products.find({'category_name':"Electronics"}).sort("$natural", pymongo.DESCENDING)
page_number =math.ceil(all_products.count()/6)
maximum = math.floor( (mongo.db.products.count_documents({})) / limit - 1)
electronics = all_products[start_index:end_index]
return render_template(
'electronics.html',
electronics= electronics,
page=page,
pages=range(1, int(page_number)+1),
maximum=maximum,
limit=limit
)
electronics.html
<ul class="pagination pg-amber justify-content-center">
<!--Previous button-->
<li {% if page==1 %} class="page-item disabled" {% endif %}>
<a class="page-link" {% if page>1 %}href="{{ url_for('electronics', page=page, limit=limit) }}"{% endif %}>
Previous
</a>
</li>
<!--Middle of the pagination-->
{% for p in pages %}
<li class="page-item{% if p == page %} active{% endif %}">
<a class="page-link" href="{{ url_for('electronics', page=p, limit=limit) }}">{{ p }}</a>
</li>
{% endfor %}
<--HERE IS THE ISSUE -->
<!--Next button-->
<li {% if page==maximum %} class="page-item disabled" {% endif %}>
<a class="page-link" {% if page!=maximum %}href="{{ url_for('electronics', page=page, limit=limit) }}" {% endif %}>
Next
</a>
</li>
</ul>
我很确定问题出在最大变量上,但我找不到解决这个问题的方法
经过长时间的研究,我找到了这个问题的答案。 因此,由于
maximum
变量得到的是所有产品,而不是electronic
类别,因此它没有进入这个函数,检索数据库的所有产品。因此,我尝试了一种方法,可以获得electronic
类别中的所有产品,即page_number
。尽管如此,我还是将其添加到了页面条件中,而不是如上所示的maximum
,并且效果良好app.py
electronics.html
变量
maximum
需要ceil
-ed。您只需要math(
相关问题 更多 >
编程相关推荐