我有一个布局模板和一个子模板。但是,子模板中没有任何额外信息显示出来。为什么不使用子模板中的信息?
FlaskTest.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('layout.html')
if __name__ == '__main__':
app.run()
的layout.html
<!doctype html>
<html>
<head>
{% block head %}
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
<title>{% block title %}{% endblock %} - My Webpage</title>
{% endblock %}
</head>
<body>
<div id="content">{% block content %}{% endblock %}</div>
<div id="footer">
{% block footer %}
© Copyright 2010 by <a href="http://domain.invalid/">you</a>.
{% endblock %}
</div>
</body>
</html>
child.html
{% extends 'layout.html' %}
{% block title %}Index{% endblock %}
{% block head %}
{{ super() }}
<style type="text/css">
.important {
color: #336699;
}
</style>
{% endblock %}
{% block content %}
<h1>Index</h1>
<p class="important">
Welcome on my awesome homepage.
{% endblock %}
在http://localhost:5000/
我得到:
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="/static/style.css">
<title> - My Webpage</title>
</head>
<body>
<div id="content"></div>
<div id="footer">
© Copyright 2010 by <a href="http://domain.invalid/">you</a>.
</div>
</body>
</html>
答案 0 :(得分:3)
您需要呈现child.html,而不是layout.html。孩子将扩展布局,但是你编写它的方式,只会呈现布局。
return render_template('child.html')