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

Flask Jinja2报extended multiple times错误的排查解决方法

jinja2.exceptions.TemplateRuntimeError: extended multiple times 错误本质是Jinja2渲染时检测到同一个模板在继承链中被重复扩展,结合你提供的代码,可按以下顺序排查:

  • 首先检查被引入的子模板是否重复继承了layout.html
    你在layout.html中用{% include 'includes/_navbar.html' %}引入了导航模板,在register.html中又引入了includes/_formhelpers.html,如果这两个被引入的模板里写了{% extends "layout.html" %}语句,就会形成「register继承layout → layout引入navbar → navbar又继承layout」的循环继承链,触发重复扩展报错。删除这两个被include的模板中的extends语句即可,被引入的模板不需要再继承父模板。
  • 检查register.html是否存在重复的extends语句
    你贴出的register.html代码中只写了一次extends,建议检查实际文件中是否有手滑多写的{% extends "layout.html" %}语句,比如注释上方、文件开头的冗余代码,重复写两次extends也会直接触发该报错。
  • 检查模板目录是否存在重名的layout.html
    如果你的templates目录下存在多个同名的layout.html(比如根目录一个、includes目录下还有一个),会导致Jinja2解析继承路径时混乱,重复加载模板,确认继承路径的唯一性即可,必要时可以写全相对路径,比如{% extends "/layout.html" %}明确指定根目录下的模板。

另外补充你代码中存在的其他潜在问题:你注册路由中,POST请求表单验证通过后的返回逻辑没有传递form参数,后续运行会触发form变量未定义的报错,建议验证通过后直接重定向到登录页或者首页,不要重复渲染注册页。

内容的提问来源于stack exchange,提问作者Vansh Shah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:06:02