else - jinja2 odd even
¿Cómo construir una tabla HTML con un bucle for simple en Jinja2? (1)
Solo estoy aprendiendo Jinja2. Nunca antes he hecho plantillas, por lo que me parece que la documentación es muy confusa en este momento.
¿Cómo construyo una tabla HTML con un simple bucle FOR? Mi plantilla se ve algo como esto:
{% for item in items %}
<TR>
<TD class="c1"><IMG src="favicon.ico"></TD>
<TD class="c2">{{date}}</TD>
<TD class="c3">{{id}}</TD>
<TD class="c4"><SPAN>{{position}}</SPAN></TD>
<TD class="c5"><SPAN>{{status}}</SPAN></TD>
</TR>
{% endfor %}
Mi código de python se ve así:
import jinja2
loader = jinja2.FileSystemLoader(''./index.html'')
env = jinja2.Environment(loader=loader)
template = env.get_template('''')
print template.render(date=''2012-02-8'', id=''123'', position=''here'', status=''Waiting'')
Parece que no puedo generar ninguna tabla. Tampoco sé si esta es la mejor manera de rellenar una tabla con varios campos.
Simplemente pase los items
a template.render
como un argumento de palabra clave: debe ser una lista (realmente, cualquier iterable será) de elementos. Si necesita subelementos use una clase o un diccionario. En el caso más simple, puedes usar un diccionario:
items = []
for i in range(1, 11):
i = str(i)
# dict == {}
# you just don''t have to quote the keys
an_item = dict(date="2012-02-" + i, id=i, position="here", status="waiting")
items.append(an_item)
# ... your code here ...
template.render(items=items)
Y entonces su código Jinja cambiaría ligeramente:
<table>
{% for item in items %}
<TR>
<TD class="c1"><IMG src="favicon.ico"></TD>
<TD class="c2">{{item.date}}</TD>
<TD class="c3">{{item.id}}</TD>
<TD class="c4"><SPAN>{{item.position}}</SPAN></TD>
<TD class="c5"><SPAN>{{item.status}}</SPAN></TD>
</TR>
{% endfor %}
</table>