python - Python 代码有效,但翻译成 Jinja 时无效?
问题描述
当有元素和没有元素时,我试图渲染数组中的所有元素。当该位置没有元素时,我想显示该位置没有练习(元素)。这需要一小段代码,它在 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")
不工作的神社代码:
{% 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 %}
Python 打印:
1
Exercise 2
2
no exercise
3
Single leg balance abd/adduction
Jinja 渲染了这个:
Exercise 2
no exercise
Day 2
no exercise
Day 3
Single leg balance abd/adduction
no exercise
解决方案
一般来说,虽然可以在 Jinja 中创建复杂的分支逻辑,但它通常是错误的地方。除了{% %}
.
我在这里的第一种方法是在 Python 中处理数组,创建一个新的数组,例如None
包含缺少的练习。然后在 Jinja 中简单地循环遍历新数组,检查 None并呈现适当的 HTML。如果需要访问当前项的索引,可以使用loop.index
和loop.index0
变量。
推荐阅读
- linux - stderr 重定向非错误消息的问题
- django - Django REST 框架。如何创建两个具有不同值的相同标签?
- javascript - 检测网页上的用户输入(按键或输入的事件处理)
- python - 从 Python 中不可搜索的流中增量读取单项 ZIP 文件
- java - 如何通过常量从数据模型中获取数据
- centos - CentOS VM(由 Openstack 管理)添加辅助 IP 但辅助 IP 无法 ping 其他主机的 IP
- javascript - Sequelize:如何使用包含创建具有嵌套表关系的数据
- printing - C - 当我回答正确答案时,我的代码没有打印 [first] IF 语句 - 为什么?
- python - 无法转换类型的对象
张量 - f# - 是否可以在运行时获取联合的标签?