在python中使用flask时,我无法使'extend'功能正常工作

时间:2017-08-24 23:43:17

标签: python html flask frontend web-frontend

我是编程新手。我决定尝试使用flask,python和HTML创建一个Web应用程序。我设置了三个文件;两个HTML和一个python:

这是应该替换信息的HTML文件(didntwork.html):

<!doctype html>
<html>
  <head>
    <title>My Webpage</title>
  </head>
  <body>
      <h3>Information:</h3>
      {% block body %}{% endblock %}
  </body>
</html>
                                        .

这是应该向第一个(connection.html)输入信息的文件:

{% extends 'didntwork.html' %}
{% block body %}
<h4>information content</h4>
{% endblock %}
                                        .

最后,这是python(main.py)中烧瓶应用程序的逻辑:

from flask import Flask, render_template

app = Flask(__name__)


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


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

不幸的是,第二个HTML文件中的extends似乎无法被识别,并且其块中的信息将不会被替换为第一个HTML文件(didntwork.html)。

这是输出:

This is the output.

预期结果应使用短语“信息内容”将h4标签附加到正文中。

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:0)

问题是{% extends 'didntwork.html' %}。从我可以告诉包含此代码的文件:

<!doctype html>
<html>
  <head>
    <title>My Webpage</title>
  </head>
<body>
  <h3>Information:</h3>
  {% block body %}{% endblock %}
</body>
</html>

connection.html 文件。

您正在扩展到正在呈现的同一文件(didntwork.html)。在这种情况下,您必须更改extends行以扩展基本HTML, connection.html

didntwork.html

中使用此代码
{% extends 'connection.html' %}
{% block body %}
<h4>information content</h4>
{% endblock %}

您可以在Template Inheritance

中找到更多信息

更新基础澄清

您在route中呈现了错误的文件。 您应该呈现connection.html,这将扩展您的didntwork.html文件。