在Jinja2中使用数组

Ден*_*бин 3 python arrays jinja2

我正在将数组对象从Flask服务器中的视图传递到jinja2模板。假设名称为aList。当我尝试aList像这样更改内部的值时:

在Flask中:

aList = ['a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)

在模板中:

{% set aList[0] = "work, dammit!" %}
Run Code Online (Sandbox Code Playgroud)

我收到此错误,告诉我模板中应使用“ =”而不是“ [”。

有人可以说在jinja2中使用数组的正确方法是什么?

t-8*_*8ch 6

第一:逻辑不应在模板中处理!

第二:如果您真的必须:

如果jinja不接受数组语法,则应该可以通过使用operator.setitemstdlib 来解决它。(确保添加operator到全局变量)

{% set foo = [0, 1, 2, 3, 4] %}
{% set _ = operator.setitem(foo, 'some stuff') %}
{{ foo }}
Run Code Online (Sandbox Code Playgroud)

  • 以及我们如何/在哪里做到这一点?“一定要向全局变量添加运算符” (4认同)