无法将子模板呈现到布局

时间:2018-11-09 21:14:50

标签: flask

我尝试同时渲染render_template('index.html')和render_template('layout.html')。仅标题和布局呈现。索引未呈现。哪里出了问题?

app.py

@app.route('/')
  def index():
  return render_template('index.html')



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

header.html:

 {% block header %}
   <div>this is header</div>  
 {% endblock %}

Layout.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{% block title %} - My Site {% endblock %}</title>
<link rel="stylesheet" href="">
</head>
<body>

   {% include 'header.html' %}


   {% block content %}
     <div> this is the layouts <div>
   {% endblock %}


  </body>
</html>

index.html:

 {% extends 'layout.html' %}

  {% block content %}
   <div>this is index page</div>
{% endblock %}

1 个答案:

答案 0 :(得分:0)

发生的事情是Jinja概念有点不同。以防万一,当您在index.html文件中扩展layout.html时,您一定也需要在其中调用标头替换。因此标题没有被调用。这是一个示例:

{% extends 'layout.html' %}

{% block header %}
<div>this is header</div>
{% endblock %}

{% block content %}
<div>this is index page</div>
{% endblock %}

我已经开发了一个项目,可以帮助您进行一系列自动创建,以防您想冒险并帮助我改善它的自在感:https://github.com/marcosstefani/flute