Ich probiere Jinja2
für meine Django-Website.
Nun, da Jinja2
nicht offiziell django templating engine
ist und es ablehnt, die Template-Tags zu erkennen / zu laden, die ich vor jinja2
verwendet habe.
Nun, auch wenn es eine Änderung bei der Erstellung der Schablonen-Tags geben muss, wie ist es dann möglich, über die Apps von Drittanbietern nachzudenken?
In diesem Fall scheint es unmöglich, Jinja2 zu verwenden, da das System nach jinja2 funktionieren muss.
[Ich verwende auch coffin
als Adapter für Jinja-Django]
Jede Hilfe ist willkommen!
Laut Sarg-Dokumenten müssen Sie alle benutzerdefinierten Django-Vorlagen-Tags als benutzerdefinierte Jinja2-Erweiterungen neu schreiben.
Sie können die jinja2-Makros auch verwenden, um die Schablonen-Tags von Django zu emulieren. Der wichtigste Unterschied besteht darin, dass für Jinja2-Makros alle Kontextdaten über den Vorlagenkontext bereitgestellt werden müssen, während in Django-Tags auf andere Weise auf Daten zugegriffen werden kann (z. B. Laden aus der Datenbank oder Aufrufen anderer Python-Bibliotheken). p>
Ich habe Jinja2-Vorlagen eine Zeitlang verwendet und musste nie ein benutzerdefiniertes Vorlagen-Tag erstellen.
Es ist möglich, django Templates in einer App auf der Website und jinja2 in einer anderen App zu verwenden, es ist kein Problem, aber es ist nicht ohne weiteres möglich, jinja2 Templates aus django Templates zu importieren oder zu erweitern und umgekehrt.
>Das kannst du mit Sarg machen. Coffin bietet eine Möglichkeit, Django-Stil-Tags für die Verwendung in jinja2-Vorlagen zu registrieren:
%Vor% Die Struktur von Django erlaubt keinen Austausch der Template-Engine, da sie ein Kernbestandteil des Systems ist. Auch wenn Sie coffin
verwenden können, ist dies keine unterstützte Konfiguration, und von keinem Drittanbietermodul wird erwartet, dass es dies unterstützt. Es wäre das gleiche wie wenn man Module von Drittanbietern bittet, sqlalchemy
zu unterstützen, weil du einen Weg gefunden hast, Django damit arbeiten zu lassen.
Wenn Sie jinja2 verwenden möchten, verwenden Sie ein Framework, das mit einer Pluggable-Vorlagen-Engine entworfen wurde - oder einer, die ohne Template-Engine ausgeliefert wird.
Die Integrationsseite listet Out-of-the-Box-Integrationen auf, die mit Jinja2 geliefert werden. Auf dieser Seite können Sie sehen, dass Pyramid
unterstützt wird - und das, weil die by design -Pyramide Pluggable-Komponenten ermöglicht.
Flask
(von den gleichen Leuten hinter Jinja2
erstellt) hat native Unterstützung für Jinja2.
Tags und Links python django templates jinja2 django-templates