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

Flask模板继承功能失效,多番排查后仍未解决,求故障原因

Flask模板继承失效问题排查

问题描述

正在学习Flask的模板继承功能,但该功能无法正常生效。已尝试调整文件位置、修改文件名、更改代码内容,问题依旧,但Flask其他功能均可正常运行。两个HTML文件均存放于template文件夹中。

相关代码

Deneme.py

from flask import Flask, render_template, redirect, url_for

app = Flask(__name__)

@app.route("/")
def home():
    return render_template("go.html")

if __name__ == "__main__":
    app.run(debug=True)

go.html(基模板)

<!DOCTYPE html>
<html lang="en">
  <head>
      <title>Template Inheritance</title>
  </head>
  <body>
      <h1> This heading is common in all webpages </h1>
      {% block content %}
      {% endblock %}

  </body>
</html>

side.html(子模板)

{% extends "go.html" %}
{% block content %}
  
<h1>Welcome to Home</h1>
  
{% endblock %}

故障原因

你当前的路由直接渲染的是基模板go.html,而Flask模板继承的逻辑是需要渲染子模板side.html——由子模板主动继承基模板的结构,再将自身内容填充到基模板的对应区块中。直接访问基模板只会显示其默认内容,不会触发子模板的继承逻辑,所以看起来继承功能未生效。

解决方法

修改Deneme.py中的路由函数,将render_template的参数改为子模板文件名:

@app.route("/")
def home():
    return render_template("side.html")

访问根路径时,Flask会渲染子模板side.html,它会自动继承go.html的结构,并将自身content区块的内容填充到基模板对应位置,模板继承功能即可正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:48:21