为了账号安全,请及时绑定邮箱和手机立即绑定

Flask - base.html 中的 Bootstrap

Flask - base.html 中的 Bootstrap

拉莫斯之舞 2021-08-17 10:20:12
我想将 Bootstrap 添加到我的网站。我有 base.html 和其他文件,它们继承自 base.html,但在我的 base.html 中,我想要导航栏,它将显示在每个站点上。不幸的是,添加了一些引导代码后,它没有显示,但是如果我将此代码添加到 index.html 中,它将显示出来。我的 base.html:{% extends "bootstrap/base.html" %}{% block head %}    {{ super() }}    {% if title %}    <title> {{ title }} - Book Blog</title>    {% else %}    <title> Welcome to Book Blog!</title>    {% endif %}{% endblock %}{% block navbar %}Microblog:     <ul class="nav nav-pills">    <li class="nav-item">        <a class="nav-link active" href="{{ url_for('index') }}">Home</a>    </li>    <li class="nav-item">        <a class="nav-link" href="{{ url_for('show_books') }}">Books</a>    </li>    <li class="nav-item">        <a class="nav-link" href="{{ url_for('login') }}">Login</a>    </li>    <li class="nav-item">        <a class="nav-link" href="{{ url_for('logout') }}">Logout</a>    </li></ul>{% endblock %}<body><hr>{% with messages = get_flashed_messages() %}{% if messages %}<ul>    {% for message in messages %}    <li>{{ message }}</li>    {% endfor %}</ul>{% endif %}{% endwith %}{% block content %}{% endblock %}</body>所以在这种情况下,导航栏不显示。正如我上面写的,如果我将导航类添加到 index.html,导航栏仅显示在此站点上。我该如何解决?
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞

问题可能来自您的index.html页面。原则上,您的索引页必须从base.html模板继承。什么应该给这个:


{% extends "base.html" %}

{% block title %}Welcome to Book Blog!{% endblock %}


{% block content %}

    <div>

        <h1>Your content</h1>

    </div>

{% endblock %}

你的模板base.html也可以稍微改变:


{% extends "bootstrap/base.html" %}

{% block head %}

    {{ super() }}

    {% if title %}

        <title> {{ title }} - Book Blog</title>

    {% else %}

        <title> Welcome to Book Blog!</title>

    {% endif %}

{% endblock %}


{% block body %}

<body>


{% block navbar %}

Microblog: 

<ul class="nav nav-pills">

    <li class="nav-item">

        <a class="nav-link active" href="{{ url_for('index') }}">Home</a>

    </li>

    <li class="nav-item">

        <a class="nav-link" href="{{ url_for('show_books') }}">Books</a>

    </li>

    <li class="nav-item">

        <a class="nav-link" href="{{ url_for('login') }}">Login</a>

    </li>

    <li class="nav-item">

        <a class="nav-link" href="{{ url_for('logout') }}">Logout</a>

    </li>

</ul>

{% endblock %}


    <hr>

    {% with messages = get_flashed_messages() %}

        {% if messages %}

            <ul>

                {% for message in messages %}

                    <li>{{ message }}</li>

                {% endfor %}

           </ul>

       {% endif %}

    {% endwith %}

    {% block content %}{% endblock %}

</body>

{% endblock %}

我在模板的正文标签中添加了一个块标签。现在,您应该在希望具有相同结构(导航栏等)的所有页面中继承此模板


查看完整回答
反对 回复 2021-08-17
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

您可能需要在每个页面上导入 Bootstrap Libs(Js、Css)。我建议编写一个<title></title>可以在每个页面中导入的文件。属性也是如此:为导航栏编写一个文件,并在需要导航栏时将其导入“Base Html”。希望我能帮上忙


查看完整回答
反对 回复 2021-08-17
  • 2 回答
  • 0 关注
  • 314 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信