Wie kann ich eine HTML-Datei in einem Jinja2 template?
Bin ich mit Flask micro-framework für meinen server verwendet Jinja-templates.
Ich habe ein Elternteil template.html
und einige Kinder Vorlagen genannt child1.html
und child2.html
einige dieser Kinder Vorlagen sind ziemlich große HTML-Dateien und ich würde gerne irgendwie aufteilen für bessere Klarheit über meine Arbeit.
Inhalt meiner main.py
Skript:
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()
Vereinfachten 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 %}
Statt der Kommentare:
<!-- include content1.html -->
Ich habe eine Menge von html-text, und es ist sehr schwer, änderungen zu verfolgen und nicht viele Fehler zu machen, die dann ziemlich schwer zu finden und zu korrigieren.
Ich würde gerne laden Sie einfach die content1.html
anstatt zu schreiben es alle in child1.html
.
Stieß ich auf diese Frage, aber ich hatte Probleme, es umzusetzen.
Ich denke, Jinja2 vielleicht ein besseres tool dafür.
HINWEIS: Der obige code funktioniert möglicherweise nicht ordnungsgemäß, ich schrieb es, um zu veranschaulichen das problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die jinja2
{% include %}
Richtlinie.Dazu gehören die Inhalte von der richtigen content-Datei.
Können Sie die gehören - Anweisung.