Frage

Statt mir am nächsten Tag zu verbringen (oder Jahr) das Lesen über ihnen allen, gibt es irgendwelche Vorschläge für Templating Engines, die ich im Detail aussehen in sollte?

War es hilfreich?

Lösung

Bester Vorschlag: versuchen sie alle. Es wird nicht lange dauern.

Mein Favorit: Jinja2 (von einer Meile)

Es hat ordentliche Syntax können Fehler durch sie verfolgen, und ist sandboxable.

Andere Tipps

Wenn Sie Code-Generierung tun, finden Sie vielleicht Cog nützlich - es ist speziell für die Codegenerierung , anstatt eine allgemein anwendbare Templating Sprache.

Die wichtigste Sorge ist, ob Sie mit der Syntax der Vorlagen erfordern leben können. Zweite und dritte (je nach den Anforderungen Ihrer Anwendung) würde Geschwindigkeit und Leichtigkeit der Verteilung sein.

ich auf alle von ihnen sah, aber die einzige Syntax kann ich stehen Jinja . Jinja hat den Vorteil, viele Python-Konstrukte unterstützt, so ist es sehr einfach Auszüge Funktionalität zu den Vorlagen, nach Bedarf hinzufügen, ohne spezielle Tags Codierung. Das meiste, was erfordert Tags in anderen Template-Systemen von Makros in Jinja behandelt wird.

Natürlich, wenn Sie nach etwas einfach und schnell suchen, ist es schwer, die Python Templating API in der Kernsprache.

Update:. Kid erscheint von Genshi gelungen zu sein

Ich habe verwendet Kid, was ich denke, eine der älteren Systemen. Ich habe es gefunden äußerst solide, stabil und zuverlässig zu sein. Es ist Tag-basierte, so ist es schön für mit XML / HTML-Code. Es ist schon interessant, dass Template-Funktionen getan werden als HTML-Attribute, nicht spezielle Blöcke, das heißt {% ...%}. Allerdings sind einige Aspekte, dass (es tut vor allem die Art und Weise ‚enthält‘) kann ziemlich lästig bekommen. Es scheint auch nicht aktiv oder überhaupt nicht mehr entwickelt werden.

Es lohnt sich ein Blick auf, wenn Sie wollen etwas, das sich für eine Weile gewesen und hat recht stabil. Wenn Sie etwas aktuellere wollen, habe ich gute Dinge gehört über beide Genshi und Jinja.

Ich mag Clearsilver, weil es mit mehreren verschiedenen Sprachen funktioniert und es erzwingt streng die Trennung zwischen Daten und Präsentation. Ich Cheetah vorher verwendet und während es ziemlich nett ist, ich wusste nicht, wie mit Arbeit, was manchmal schien wie eine begrenzte Form von Python.

Wenn Sie mit X [HT] ML arbeiten, einer der Tag-basierte Templating-Systeme, die Sie mit gut ausgebildeten Vorlagen lassen können, ist ein guter Schritt. Ich benutze PXTL , FWIW. (Es können auch andere Formate produzieren, aber wenn Ihr Schwerpunkt liegt nicht XML oder HTML es nicht eine vernünftige Wahl sein würde.)

Ich habe eine intensive Abneigung gegen Templating-Systeme, die durch Ausdrücke, um ihre eigene kleine Sprache limitierend „Sie trennen die Geschäftslogik und Präsentation zu helfen“ behaupten. Sie scheinen nicht zu verstehen, dass es wie etwas wie „Präsentationslogik“, und es kann manchmal genug kompliziert eine wirkliche Sprache wie Python müssen, um sie auszuführen. Sie treten Sie Ihre Präsentationslogik in die App mit der Business-Logik zu haben, ist so nicht eine Win . Vermeiden Sie!

(Der begrenzte Ausdruck separate Mini-Sprache Ansatz machte einigen Sinn in JSP ‚EL‘, wie Java zu annoyingly ausführlich ist in einer Templat-Bibliothek zu verwenden. Aber wir haben Python bekommen! Es ist für Schreiben von Ausdrücken in Vorlagen, wie es perfekt wird;. Funktionalität und macht der Benutzer eine andere neue Sprache nichts gewinnt man lernen hacken)

Wenn Sie eine sehr leicht Option, versuchen templete. Es ist nur wie 80 Zeilen Code in einzelnen Moduls. Werfen Sie einen Blick hier und hier (es wurde in einem Blog veröffentlicht). Ich denke, es ist eine kluge und sehr fokussierte Lösung, wenn die Merkmale für Sie ausreichend sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top