Колба с обратной стороной шаблона макета для создания страницы из нескольких компонентов/шаблонов

#python #templates #flask #view #modular

Вопрос:

Я создаю веб-сайт с помощью Flask, и он содержит несколько представлений/вкладок, которые являются модульными и должны заменяться в зависимости от запроса клиента.

С этой целью я пытаюсь написать шаблон index.html это включает в себя несколько шаблонов представлений (view1.html, view2.html и т.д.)

Таким образом, он должен быть обратным шаблону компоновки, в котором создается базовый макет и из него выводится несколько страниц. Напротив, я ищу шаблон, в котором одна страница создается из нескольких компонентов/шаблонов, которые включают HTML-код.

Я изо всех сил пытаюсь найти решение, и я тоже не знаю, как его искать.

Я искал что-то структурированное, как:

 @app.route('/')
def index():
    return render_template('index.html', views=[
        render_template('view1.html'),
        render_template('view2.html'),
        render_template('view3.html'),
        render_template('view4.html')
    ])
    
 

если найдено решение для статического включения представлений {% include 'view1.html' %} в index.html. Если бы я мог сделать это динамичным, позволив выбрать включаемые файлы в render_template, это было бы решением

Ответ №1:

Решение с использованием цикла «Включить» и » для » в шаблоне:

в коде python:

 @app.route('/')
def index():
    return render_template('index.html', views=["view1", "view2", "view3"])
 

в index.html:

 {% for v in views %}
    {% set path = ''   v   '.html' %}{% include path %}
{% endfor %}