我可以在 Flask 模板中嵌套变量吗? [复制]

2024-04-19

大家好,我在 Flask 中遇到了一个问题。 mysql中有一个名为category的表,我查询了所有这些表,然后将它们传递给a.html,如下所示:

return render_template('admin_index.html', username=session.get('username'), categories=categories)

在 admin_index.html 中,我想列出所有这些,这是我的代码:

var _menus = {
    "menus": [
        {
            "menuid": "1",
            "icon": "icon-sys",
            "menuname": "category",
            "menus": [
                {% for category in categories %}
                    {
                        "menuid": "{{ category.id }}",
                        "menuname":"{{ category.name }}",
                        "icon": "icon-users",
                        "url": "{{url_for('admin.category', id={{category.id}} _external=True) }}"
                    },
                {% endfor %}
            ]
        }
    ]
};

但是当我运行这个时,我收到一个错误:

jinja2.exceptions.TemplateSyntaxError:预期标记“:”,得到“}”

我尝试删除 {{category.id }},结果没问题,我怀疑 Flask 模板中不允许嵌套变量,如下所示:

{{ a is {{ b }} }}

有什么办法可以让我嵌套它吗?


你已经进入了神社的表达之中。所以执行下面的代码:

url_for("admin.category", id={{category.id}} _external=True)

因为{它需要一个字典,因此会出现错误。

使用的值category.id只需省略大括号:

url_for("admin.category", id=category.id, _external=True)

另请注意,您忘记了,在“_external”之前。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以在 Flask 模板中嵌套变量吗? [复制] 的相关文章

随机推荐