#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 %}