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.

InformationsquelleAutor quapka | 2014-04-04
Schreibe einen Kommentar