如何使用Jinja条件显示.active引导分页?

时间:2019-09-20 16:03:07

标签: python flask jinja2

我正在尝试在当前页面上显示.active,客户端是。

我在jinja条件中使用了page变量,但是我不知道如何获取当前页面以进行比较并显示.active类,如下所示。

 {% for page in pages %}
        {%if  page *****  %}
        <li class="page-item {{'active'}}">
          {%endif%}
          <a class="page-link" href="{{ url_for('electronics', page=page, limit=limit) }}">{{ page }}</a>
        </li>
        {% endfor %}
@app.route('/electronics/')
@app.route('/electronics/<page>/<limit>')
def electronics(page=1, limit=6):
    page=int(page)
    limit=int(limit)
    skip = page * limit - limit
    maximum = math.floor( (mongo.db.products.count_documents({})) / limit - 1)
    print(maximum)
    electronics = list(mongo.db.products.find({'category_name':"Electronics"}).sort("$natural", pymongo.DESCENDING).skip(skip).limit( limit ))
    return render_template(
        'electronics.html', 
        electronics=electronics,
        page=page,
        pages=range(1, int(maximum) + 1),
        maximum=maximum, 
        limit=limit
    )

1 个答案:

答案 0 :(得分:1)

变量page保存您的当前页面,并且for循环中的变量将其覆盖。您可以将for循环中的变量重命名为p,以便您可以检查它是否等于page

electronics.html

{% 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 %}