Я использую микросхему Flask для своего сервера, который использует шаблоны Jinja.
У меня есть родительский template.html
и несколько дочерних шаблонов, которые называются, child1.html
и child2.html
некоторые из этих дочерних шаблонов представляют собой довольно большие HTML-файлы, и я хотел бы как-то разделить их для большей ясности в моей работе.
Содержание моего main.py
сценария:
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/')
@app.route('/<task>')
def home(task=''):
return render_template('child1.html', task=task)
app.run()
Упрощенное template.html
:
<!DOCTYPE html>
<html>
<head></head>
<body>
<div class="container">
{% block content %}{% endblock %}
</div>
</body>
</html>
Магия в child1.html
:
{% extends 'template.html' %}
{% block content %}
{% if task == 'content1' %}
<!-- include content1.html -->
{% endif %}
{% if task == 'content2' %}
<!-- include content2.html -->
{% endif %}
{% endblock %}
Вместо комментариев:
<!-- include content1.html -->
У меня много html-текста, и очень сложно отслеживать изменения и не допускать ошибок, которые потом довольно сложно найти и исправить.
Я хотел бы просто загрузить content1.html
вместо того, чтобы писать все это child1.html
.
Я столкнулся с этим вопросом , но у меня возникли проблемы с его реализацией.
Я думаю, что у Jinja2 есть для этого лучший инструмент.
ПРИМЕЧАНИЕ. Приведенный выше код может работать некорректно, я просто написал его, чтобы проиллюстрировать проблему.