首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Jinja语句未正确执行

Jinja语句未正确执行
EN

Stack Overflow用户
提问于 2018-09-10 02:34:18
回答 1查看 46关注 0票数 0

我用的是Jinja + Flask

示例代码如下:

代码语言:javascript
复制
# Flask
@app.route('/test/<int:counter>'):
    return render_templates('test.html', counter)

# Jinja
## test.html
{% extends "layout.html" %}
{% if counter|int == 1 %}
{% block scoreboard1 %}active1{% endblock %}
{% elif counter|int == 2 %}
{% block scoreboard2 %}active2{% endblock %}
{% elif counter|int == 3 %}
{% block scoreboard3 %}active3{% endblock %}
{% else %}
{% endif %}

## layout.html
<a href="/scoreboard/1" class="{% block scoreboard1 %}{% endblock %} item">1</a>
<a href="/scoreboard/2" class="{% block scoreboard2 %}{% endblock %} item">2</a>
<a href="/scoreboard/3" class="{% block scoreboard3 %}{% endblock %} item">3</a>

下面是结果(在chrome dev工具中检查):

代码语言:javascript
复制
# URL -> 127.0.0.1/test/2
<a href="/scoreboard/1" class="active1 item">1</a>
<a href="/scoreboard/2" class="active2 item">2</a>
<a href="/scoreboard/3" class="active3 item">3</a>

预期结果:

代码语言:javascript
复制
# URL -> 127.0.0.1/test/2
<a href="/scoreboard/1" class=" item">1</a>
<a href="/scoreboard/2" class="active2 item">2</a>
<a href="/scoreboard/3" class=" item">3</a>

我期望块将依赖于计数器值,但实际上,它改变了这一切。

我有点好奇是什么引起了这个bug

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-10 03:26:29

你不能在这样的条件中使用block,不管条件是否满足,只要你的block在你的子模板中,它就会被填充。

有几种方法可以实现(我假设是)您想要的东西,例如,您可以使用macro

代码语言:javascript
复制
{% macro scoreboardlink(counter) %}
    <a href="/scoreboard/1" class="{% if counter|int == 1 %}active1{% endif %} item">1</a>
    <!-- you should look into url_for() instead of hardcoding your urls -->
    ...
{%- endmacro %}

然后在您的模板中使用如下代码:

代码语言:javascript
复制
...
{{ scoreboardlink(counter) }}
...

但是,如果你想要你已经拥有的结构layout.html,你当然可以稍微调整一下,并将条件放在你的代码块中:

代码语言:javascript
复制
{% block scoreboard1 %}
    {% if counter|int == 1 %}active1{% endif %}
{% endblock %}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52247510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档