You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask项目中Jinja2 include语句TemplateSyntaxError报错求助

解决Flask Jinja2模板include语句的SyntaxError问题

错误根源

你的代码存在两个关键语法问题:

  • 被引入的模板文件名nav.html未用引号包裹,Jinja2会将其解析为变量而非字符串路径
  • 即便使用with传递参数,也必须先保证模板名的语法正确

正确语法示例

写法一(带with关键字)

{% include "nav.html" with active_page="home" %}

写法二(省略with关键字)

Jinja2支持直接在模板名后传递参数,写法更简洁:

{% include "nav.html" active_page="home" %}

你尝试的写法问题解析

  • % include nav.html with {active_page="home"} %}:缺失开头的{,模板名未加引号,且大括号包裹参数不符合Jinja2语法
  • {% include nav.html with (active_page="home") %}:模板名未加引号,括号包裹参数属于冗余写法
  • {% include nav.html with 'active_page'="home" %}:模板名未加引号,参数名无需额外加引号
  • {% include nav.html active_page="home" %}:仅缺少模板名的引号,补全后即可正常运行

关于w3schools示例的说明

w3schools的示例可能适配的是其他模板引擎或旧版语法,Jinja2强制要求被引入的模板文件名必须以字符串(引号包裹)形式传入,这是导致你报错的核心原因。

内容的提问来源于stack exchange,提问作者Klaas Vonk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 11:17:13