Flask模板遇TemplateSyntaxError:期望':',实际得到'}',求解决
Flask模板权限控制的语法错误修复
你的代码报错是因为Jinja2模板语法使用错误,核心问题有两个:
- Jinja2控制语句(如
{% if %})内部不需要用{{ }}包裹变量,直接写变量名即可 - 判断相等需用双等号
==,单等号=是赋值操作,不符合条件判断逻辑
正确的代码写法如下:
{% if role == 1 %} <div id="cabecera"> <header class="py-3 mb-4 border-bottom"> <div class="container d-flex flex-wrap justify-content-center"> <a href="/home" class="d-flex align-items-center mb-3 mb-lg-0 me-lg-auto text-dark text-decoration-none"> <!-- 此处填充你的内容 --> </a> </div> </header> </div> {% else %} <!-- 此处放置role不为1时显示的内容 --> <div id="alternative-cabecera"> <!-- 其他内容结构 --> </div> {% endif %}
说明:
- 直接在
{% if %}中用role == 1做条件判断,无需额外模板变量标记 - 用
{% else %}处理role不为1的分支,最后必须用{% endif %}闭合if块,这是Jinja2控制语句的标准规范
内容的提问来源于stack exchange,提问作者juanjo
相关产品推荐
相关产品推荐

