Я використовую мікросхему 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 може мати кращий інструмент для цього.
ПРИМІТКА: Наведений вище код може працювати неправильно, я просто написав його, щоб проілюструвати проблему.