Ist es möglich, Includes mit Flask auszuführen?

Lesezeit: 2 Minuten

Benutzer-Avatar
Michael

Angenommen, ich habe ein Vorlagenlayout in template.html gespeichert. Diese Vorlage enthält ein Banner, eine Seitennavigation, einen Inhaltscontainer und eine Fußzeile. Kann ich Flask verwenden, um diese Seitenelemente so aufzuteilen, dass ich Dateien wie banner.html, sidenavigation.html usw. haben und diese verschiedenen Dateien in template.html rendern kann?

Benutzer-Avatar
Liyan Chang

Aus: http://jinja.pocoo.org/docs/templates/#include

vorlage.html

{% include 'banner.html' %}
{% include 'sidenavigation.html' %}
{% include 'content.html' %}
{% include 'footer.html' %}

  • Möglicherweise möchten Sie sich auch die Vorlagenvererbung ansehen, da dies möglicherweise eine leistungsfähigere Methode ist, um das zu tun, was Sie möchten: jinja.pocoo.org/docs/templates/#template-inheritance

    – Liyan Chang

    14. Mai 2012 um 22:03 Uhr


  • Es ist zu beachten, dass Sie in Jinja2 keine Vererbungshierarchie erstellen können, Sie können ein Dokument nur eine Ebene tief vererben.

    – Joshua Hedges

    21. Juli 2017 um 4:20 Uhr

  • @MadPumpkin: Was genau meinst du damit? Sie können so viele Ebenen tief erweitern, wie Sie möchten. Es ist nicht möglich, eine einzelne Vorlage von mehreren anderen zu erweitern (vielleicht haben Sie das gemeint?)

    – Roy Prins

    31. Mai 2018 um 11:47 Uhr

Benutzer-Avatar
plaes

Standardmäßig verwendet Flask Jinja2 als Template-Engine. Siehe Jinjas Vorlagendesigner-Dokumentation wie es gemacht wird.

  • Aber ist es möglich, hervorzuheben, welche Seite in sidenavigation.html aktiv ist?

    – jOSe

    19. November 2020 um 5:54 Uhr

  • @jOSe Sie können die verwenden scoped Stichwort in der block Definition in “sidenavigation.html”. Siehe Jinjas Abschnitt “Blockverschachtelung und Umfang”.. Ihr Beispiel ist {% block loop_item scoped %}{{ item }}{% endblock %} welches erlaubt item um seine Definition aus der erbenden Vorlage zu ziehen.

    – John Crawford

    31. März um 20:45 Uhr

Bevor Sie beginnen, müssen Sie diese Komponenten separat als reines HTML in andere HTML-Dateien schreiben. Diese Dateien sollten beispielsweise keine Jinja-Syntax enthalten. Danach laut Dokumentationkönnen Sie diese ganz einfach per Aufruf in Ihre template.html-Datei importieren {% include 'filename.html' %} Code.

1017760cookie-checkIst es möglich, Includes mit Flask auszuführen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy