Одно из моих предложений - использовать {% include "nav.html"%}
Где nav.html содержит только вашу панель навигации.
Используя {% include%}, вы можете разместить одну и ту же панель навигации на разных страницах.
Например, мой master.html может иметь эту настройку.
master.html
{% include "nav.html" %} <!-- your nav html goes here -->
<!-- Section block for item in the page -->
<div class="main">
<div class = "container">
{% block section %}
{% endblock %}
</div>
</div>
Для заполнителя {% include%} также позволяет передавать аргументы в nav.html.
Однако, если я правильно понимаю, что вы используете местозаполнитель, это означает, что ваша навигация основана на аргументах. Таким образом, вам нужно передать некоторые переменные.
Давайте посмотрим на очень простую навигацию.
nav.html
<ul>
<li><a class="active" href="#home">Home</a></li>
<li><a href="{{link_1}}">{{name_1}}</a></li>
<li><a href="#"">Contact</a></li>
<li><a href="#">About</a></li>
</ul>
app.py
@app.route('/', methods=['GET'])
def landing():
return render_template('pages/landing_page.html', link_1="somelink", name_1="News")
landing_page.html
{% extends "master_main.html" %}
{% block section %}
<div class = "content">
This is my content
</div>
{% endblock %}
Вы можете видеть, что landing_page.html расширяет master.html, в котором есть nav.html.
Следовательно, каждая страница, которую вы расширяете master.html, будет иметь одну и ту же панель навигации.
include позволяет передавать аргументы в nav.html, поскольку вы можете видеть, что я передал link_1 и name_1