gpt4 book ai didi

javascript - Jinja2:如何创建多维 javascript 数组?

转载 作者:数据小太阳 更新时间:2023-10-29 05:59:11 25 4
gpt4 key购买 nike

我正在使用 FlaskJinja2作为模板语言。

如何使用 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,以供菜单和其他复杂的选择界面使用。

最佳答案

您可以使用 json 模块,作为 Jinja 过滤器或直接将 json.dumps() 的结果传递给您的模板。

pyStruct = [{key1:value1, key2:value2, [{subkey1:subvalue1, subkey2:subvalue2,}]},
{key1:value1, key2:value2, [{subkey1:subvalue1, subkey2:subvalue2,}]},]

render_template('jinjatemplate.html', json_struct=json.dumps(pyStruct))

在模板中:

var myStruct = ({{ json_struct|e }});

警告:我对转义位(|e 过滤器)有点不确定。您可能想要检查 <、> 和 & 字符是否使用 unicode 转义序列而不是 xml 实体正确转义。

关于javascript - Jinja2:如何创建多维 javascript 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6609833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com