#javascript #python #html #django
#javascript #python #HTML #django
Вопрос:
Я работаю над веб-приложением для отображения сведений на электронных платах на основе базы данных. У меня есть два способа отображения результатов поиска :
- Первый способ — щелкнуть по доске, и вы перейдете на страницу сведений (чтобы у этой страницы был свой URL-адрес, и я мог передать его кому-то другому)
- Второй способ — сравнить несколько плат, и детали отображаются на той же странице (прямо под досками, которые я выбрал для сравнения)
Оба способа отображают одну и ту же HTML-страницу с именем «details.html »
Вот моя проблема: чтобы заставить первый способ работать, я использовал {% extends «base.html » %} и я создал блок в последнем, поэтому у меня все еще есть все меню (которые находятся в «base.html «файл), доступный на странице сведений. первый способ
Однако, чтобы второй способ работал, я хотел бы поместить html «details.html » в div, чтобы он отображался на той же странице. Но из-за {% extends …%} все меню из «base.html » также отображаются… (что кажется логичным, потому что я сделал так, чтобы она отображалась для первого способа работы.)
Я понятия не имею, как это исправить (кроме как иметь 2 отдельные HTML-страницы) или как изменить его, чтобы он также работал, зная, что мне действительно нужны два способа работы, и я не могу изменить эти способы отображения.
У вас есть какие-нибудь идеи?
Ответ №1:
Используйте {% include %}
тег шаблона (doc). Это позволит вам использовать общий фрагмент html из двух разных шаблонов.
Вы можете комбинировать оба {% extends %}
и {% include %}
теги по мере необходимости.
В качестве альтернативы, можно выполнить композицию на стороне клиента с помощью небольшого количества JavaScript, запроса AJAX / Fetch и <iframe>
тега. В некоторых случаях может быть желательным рендеринг на стороне клиента, поскольку он обеспечивает лучшую изоляцию рендеринга, поэтому сценарии и стили более чистые и надежные. Но недостатком также является то, что рендеринг в iframe полностью изолирован, поэтому создание сценариев и стилизация между страницами могут стать сложнее, если вам нужно сделать больше, чем просто отображение содержимого.
Ответ №2:
Возможно, я неправильно понял, но я думаю, вы спрашиваете о отображении содержимого другой веб-страницы на веб-странице?
Вы могли бы использовать модальный для отображения содержимого веб-страницы внутри него.
Я не знаю, используете ли вы какой-либо фреймворк для своего приложения, но я использую Bootstrap для своего, и это упрощает верстку страницы и некоторые функции. очень легко реализовать.