Python 为什么在使用Flask时标题会显示在页面正文中?

Python 为什么在使用Flask时标题会显示在页面正文中?,python,html,twitter-bootstrap,flask,Python,Html,Twitter Bootstrap,Flask,一切都很好,包括标题,直到我去添加一个图标。手动创建并调用{{super()}引入引导的黑魔法后,标题现在显示在导航栏上方 base.html {%extends“bootstrap/base.html”%} {%block head%} {{super()}} {%block title%}{%block page_name%}{%endblock%}-MyFlask{%endblock%} {%endblock%} {%block navbar%} {%endblock%} index.h

一切都很好,包括标题,直到我去添加一个图标。手动创建
并调用
{{super()}
引入引导的黑魔法后,标题现在显示在导航栏上方

base.html

{%extends“bootstrap/base.html”%}
{%block head%}
{{super()}}
{%block title%}{%block page_name%}{%endblock%}-MyFlask{%endblock%}
{%endblock%}
{%block navbar%}
{%endblock%}
index.html

{%extends“base.html”%}
{%block page_name%}索引{%endblock%}

我怀疑这并不能直接回答您的问题,但实现这一结果的更好方法可能是从视图中传入页面标题

base.html

{% block title %}
    {% if title %}
        {{title}} - MyFlask
    {% else %}
        MyFlask
    {% endif %}
{% endblock %}
views.py

@app.route('/', methods=['GET'])
def index():
    return render_template("index.html", title='Index')

在块中使用
super()
函数时,将向该块添加新内容,而不是替换原始内容。因此,当您在
head
块中调用
super()
时,Jinja2从
bootstrap/base.html
插入
head
块的内容:

  <head>
    {%- block head %}
    <title>{% block title %}{% endblock title %}</title>

    {%- block metas %}
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    {%- endblock metas %}

    {%- block styles %}
    <!-- Bootstrap -->
    <link href="{{bootstrap_find_resource('css/bootstrap.css', cdn='bootstrap')}}" rel="stylesheet">
    {%- endblock styles %}
    {%- endblock head %}
  </head>

您可以包括“bootstrap/base.html”文件吗?bootstrap/base.html文件是bootstrap附带的标准文件。据我所知,我认为它只是包含了所有的设置和初始化,以便合并引导。这实际上可能是它继承的文件(也称为bootstrap/base.html),至少是非常类似的文件。
{% extends "bootstrap/base.html" %}

{% block title %}{% block page_name %}{% endblock %} - MyFlask{% endblock %}

{%- block styles %}
{{ super() }}
<link rel="icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">
{% endblock %}

{% block navbar %}
    <nav class="navbar navbar-default">
        <div class="container-fluid">
            <div class="navbar-header">
                <a class="navbar-brand" href="#">MyFlask</a>
            </div>
        </div>
    </nav>
{% endblock %}