Ich verwende Flask Micro-Framework für meinen Server, der Jinja-Vorlagen verwendet.
Ich habe eine übergeordnete template.html
und einige untergeordnete Vorlagen namens child1.html
und child2.html
einige dieser untergeordneten Vorlagen sind ziemlich große HTML-Dateien, und ich möchte sie irgendwie aufteilen, um die Übersichtlichkeit meiner Arbeit zu verbessern.
Inhalt meines main.py
Skripts:
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()
Das vereinfachte template.html
:
<!DOCTYPE html>
<html>
<head></head>
<body>
<div class="container">
{% block content %}{% endblock %}
</div>
</body>
</html>
Die Magie ist in child1.html
:
{% extends 'template.html' %}
{% block content %}
{% if task == 'content1' %}
<!-- include content1.html -->
{% endif %}
{% if task == 'content2' %}
<!-- include content2.html -->
{% endif %}
{% endblock %}
Anstelle der Kommentare:
<!-- include content1.html -->
Ich habe viel HTML-Text, und es ist sehr schwierig, Änderungen im Auge zu behalten und keine Fehler zu machen, die dann ziemlich schwer zu finden und zu korrigieren sind.
Ich möchte nur das laden, content1.html
anstatt alles zu schreiben child1.html
.
Ich bin auf diese Frage gestoßen , hatte aber Probleme, sie umzusetzen.
Ich denke, Jinja2 könnte ein besseres Werkzeug dafür haben.
HINWEIS: Der obige Code funktioniert möglicherweise nicht richtig. Ich habe ihn nur geschrieben, um das Problem zu veranschaulichen.