如何使用Jinja2将多维Python结构转换为相应的javascript结构?
示例(Python/Flask):
pyStruct = [{key1:value1, key2:value2, [{subkey1:subvalue1, subkey2:subvalue2,}]},
{key1:value1, key2:value2, [{subkey1:subvalue1, subkey2:subvalue2,}]},]
render_template('jinjatemplate.html', pyStruct=pyStruct)
示例(Jinja2):
??
我想问的是,是否只能在Jinja2中创建复杂的循环结构来实现此功能,还是我哪里错过了捷径?
如果答案是必须在Jinja2中使用复杂的循环结构,那么最简单的方法就是直接在Python中创建JavaScript代码并将其传递给Jinja2进行包含。
但这似乎有些违背使用Jinja2这样的模板语言的初衷...
我已尝试(Jinja2):
{{ pyStruct|safe }}
只要没有涉及到Unicode,并且不超出Ascii范围(通常在我的情况下会超出范围),这种方法就可以正常工作。
还有,如果你想知道为什么要传递这种结构?我发现我经常希望将相当复杂的结构传递给JavaScript,以便由菜单和其他复杂的选择界面使用。