Python代码可以工作,但在翻译成Jinja时不能工作?

Python代码可以工作,但在翻译成Jinja时不能工作?,python,html,flask,jinja2,Python,Html,Flask,Jinja2,我试图在有元素和没有元素时渲染数组中的所有元素。当该位置没有元素时,我想显示该位置没有练习(元素)。这需要一小段代码,可以在python中工作,但不能在Jinja中工作。这对我来说毫无意义,除非我忽略了两种语言之间的差异 我首先用python编写代码的原因是,我已经尝试了一段时间,以使其正常工作。我想如果我写python我可以翻译它,但我想不是吗 工作python代码: dailyExercise = [('Exercise 1', 1), ('Exercise 2', 3)] for x in

我试图在有元素和没有元素时渲染数组中的所有元素。当该位置没有元素时,我想显示该位置没有练习(元素)。这需要一小段代码,可以在python中工作,但不能在Jinja中工作。这对我来说毫无意义,除非我忽略了两种语言之间的差异

我首先用python编写代码的原因是,我已经尝试了一段时间,以使其正常工作。我想如果我写python我可以翻译它,但我想不是吗

工作python代码:

dailyExercise = [('Exercise 1', 1), ('Exercise 2', 3)]
for x in range(dailyExercise[-1][-1]):
    print(x+1)
    isExercise = False
    for exercise in dailyExercise:
        if exercise[-1] == x+1:
            print(exercise[0])
            isExercise = True
            break;
    if isExercise == False:
        print("no exercise")
不工作的Jinja代码:

{% for x in range(dailyExercise[-1][-1]) %}
    <p>Day {{x+1}}</p>
    {%set isExercise = False%}
    {% for exercise in dailyExercise%}
        {% if exercise[-1] == x+1 %}
            {%set isExercise = True%}
            <p>{{exercise[0]}}</p>
        {% endif %}
    {% endfor %}
    {% if isExercise == False%}
    <p>no exercise</p>
    {% endif %}
{% endfor %}
Jinja认为:

Exercise 2
no exercise
Day 2
no exercise
Day 3
Single leg balance abd/adduction
no exercise
一般来说,虽然可以在Jinja中创建复杂的分支逻辑,但它通常是错误的。除了
{%%}
的视觉混乱之外,还有一个事实,即模板尽可能多地用于客户端代码,而不是业务逻辑


这里我的第一种方法是用Python处理数组,创建一个新的数组,其中包含一个缺少的练习,例如
None
。然后简单地在Jinja中循环新数组,并呈现适当的HTML。如果您需要访问当前项目的索引,可以使用变量。

A in Flask是路由传入请求后响应该请求的代码。它不使用与其他框架相同的术语。您也不会在模板中打印任何内容;值已呈现。谢谢。我在MVC中使用的是“视图”,但即使这样也不是很合适的划分。我已经调整了措辞。
Exercise 2
no exercise
Day 2
no exercise
Day 3
Single leg balance abd/adduction
no exercise