大家好,我在 Flask 中遇到了一个问题。mysql中有一个表名为category,我查询了所有的表,然后传给a.html,像这样:
return render_template('admin_index.html', username=session.get('username'), categories=categories)
Run Code Online (Sandbox Code Playgroud)
在 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 %}
]
}
]
};
Run Code Online (Sandbox Code Playgroud)
但是当我运行这个时,我得到了一个错误:
jinja2.exceptions.TemplateSyntaxError:预期的标记“:”,得到“}”
我尝试删除{{ category.id }},结果还可以,我怀疑不允许在 Flask 模板中嵌套变量,如下所示:
{{ a is {{ b }} }}
Run Code Online (Sandbox Code Playgroud)
有什么办法可以嵌套吗?
你已经在一个 jinja 表达中。于是执行如下代码:
url_for("admin.category", id={{category.id}} _external=True)
Run Code Online (Sandbox Code Playgroud)
由于{它需要一本字典,因此出现错误。
要使用 的值,category.id只需省略大括号:
url_for("admin.category", id=category.id, _external=True)
Run Code Online (Sandbox Code Playgroud)
另请注意,您,在“_external”之前忘记了。
| 归档时间: |
|
| 查看次数: |
1581 次 |
| 最近记录: |