una tutorial plantillas para pagina lista examples descargar crear con bootstrap javascript python templates google-closure-templates

javascript - plantillas - django tutorial



¿Sistema de plantillas para Python y Javascript? (3)

Una buena característica de las plantillas de Soy de Google es que puede usar las mismas plantillas en el cliente (JS) y en el servidor (Java).

Actualmente planeo renderizar la mayoría de las páginas del lado del cliente usando plantillas de Soy compiladas para JS. Sin embargo, mi backend está escrito en Python (usando Tornado), por lo que no puedo usar fácilmente las mismas plantillas del servidor para generar correos electrónicos o páginas estáticas.

Podría representar estas plantillas de soya usando un componente Java separado en el lado del servidor, o tal vez incluso hacer que funcionen en node.js. Ninguna de esas opciones parece particularmente limpia.

¿Existen buenos motores de plantillas que funcionen tanto en JS como en Python? ¿Alguien ha tenido buenos resultados con JSON-Template o Tenjin? ¿Alguna otra idea?


El bigote es un motor de plantillas que se ha implementado tanto en Python como en JavaScript (y en muchos otros idiomas).

http://mustache.github.com/


Me doy cuenta de que esta es una pregunta muy antigua, pero para la referencia, ahora es posible compilar plantillas de Soy en código Python.

https://pypi.python.org/pypi/soy


Michael Kerrin ha creado un proyecto llamado pwt.jinja2js

Descripción del Proyecto:

pwt.jinja2js es una extensión del motor de plantillas Jinja2 que compila plantillas Jinja2 válidas que contienen macros a JavaScript. La salida de JavaScript se puede incluir mediante etiquetas de script o se puede agregar a las aplicaciones JavaScript.

Como se indica en la documentation

Al deslizar un interruptor podemos producir Java Script que aprovecha la biblioteca de cierre y produce lo siguiente:

Jinja2:

{% namespace ns1 %} {% macro printusers(users) %} <ul> {% for user in users %} <li><a href="{{ user.url }}">{{ user.username }}</a></li> {% endfor %} </ul> {% endmacro %}

Se convierte en

goog.provide(''ns1''); goog.require(''soy''); ns1.printusers = function(opt_data, opt_sb) { var output = opt_sb || new soy.StringBuilder(); output.append(''/n<ul>/n''); var userList = opt_data.users; var userListLen = userList.length; for (var userIndex = 0; userIndex < userListLen; userIndex++) { var userData = userList[userIndex]; output.append(''/n <li><a href="'', userData.url, ''">'', userData.username, ''</a></li>/n''); } output.append(''/n</ul>/n''); if (!opt_sb) return output.toString(); }