Como mencionamos anteriormente Flask utiliza el motor de templates (platillas) Jinja2 , este es, quizás, una de las librerías más populares de Python, con ella podemos generar documentos HTML de una forma rápida y sencilla.
Al trabajar con Jinja2 debemos tener presentes 3 elementos importantes:
- Variables {{ variable }}
- Instrucciones {% instrucción %}
- Comentarios {# comentarios #}
En esta ocasión me gustaría compartir un par de ejemplos de lo que podemos hacer en nuestros templates.
Uso de variables
Si nosotros así lo deseamos podemos enviar objetos a nuestro templates.
<h2>Hola {{ username }} </h2>
<p>
Te encuentras en el curso {{ course.title }}
</p>
Uso de condiciones
{% if user_is_admin %}
<a href="{{ url_for('admin') }}">admin</a>
{% else %}
<p>No cuentas con los permisos suficientes</p>
{% endif %}
{% if user_is_admin and user.permission_level == 5 %}
<a href="{{ url_for('admin') }}">admin</a>
{% endif %}
Uso de ciclos
El único ciclo permitido por el motor Jinja2 es el ciclo for.
<ul>
{% for val in [1,2,3,4,5,6,7,8,9] %}
<li> {{ val }} </li>
{% endfor %}
</ul>
Dentro del ciclo podemos acceder a diferentes atributos del objeto loop.
- index: Interacción actual. El valor comienza en 1
- index0: Iteración actual. El valor comienza en 0 (Ideal si deseamos replicar el comportamiento de la función enumerate)
- first: Valor verdadero si nos encontramos en la primera iteración.
- last: Valor verdadero si nos encontramos en la última iteración.
- length: Número de iteraciones.
Ejemplo
<ul>
{% for val in [1,2,3,4,5,6,7,8,9] %}
<li> {{ loop.index0 }} - {{ val }} </li>
{% endfor %}
</ul>
Funciones
Aunque la integración de Flask y Jinja2 nos permite ejecutar ciertas funciones y métodos dentro de nuestro template, habrá ocasiones en las que necesitemos utilizar funciones propias, en esos casos lo que podemos hacer es enviar las funciones al template a través de la función render template.
def suma(val1, val2):
return val1 + val2
def suma_template():
return render_template('suma.html', val1=10,
val2=30, funcion=suma)
<p>
La suma de {{ val1 }} + {{ val2 }} es : {{ funcion(val1, val2) }}
</p>
-
check_circle_outlineMódulo 1 | 17 clases
Introducción y Fundamentos
expand_more-
done_all
Clase 1
Introducción al curso de Python Web
-
done_all
Clase 2
Qué es Flask
-
done_all
Clase 3
WSGI python
-
done_all
Clase 4
Entorno de desarrollo e instalación de Flask
-
done_all
Clase 5
Crear servidor de Flask
-
done_all
Clase 6
Hola mundo (primera página web)
-
done_all
Clase 7
Renderizar template
-
done_all
Clase 8
Páginas web dinámicas
-
done_all
Clase 9
Ciclos y condicionales
-
done_all
Clase 10
Plantillas Jinja2
-
done_all
Clase 11
Parámetros
-
done_all
Clase 12
¿Qué es el query string?
-
done_all
Clase 13
Lectura de queries
-
done_all
Clase 14
Archivos estáticos
-
done_all
Clase 15
Herencia de plantillas
-
done_all
Clase 16
Links
-
done_all
Clase 17
Callbacks
-
-
check_circle_outlineMódulo 2 | 7 clases
Proyecto del curso
expand_more -
check_circle_outlineMódulo 3 | 7 clases
Formularios
expand_more -
check_circle_outlineMódulo 4 | 6 clases
Modelos
expand_more -
check_circle_outlineMódulo 5 | 4 clases
Validaciones
expand_more -
check_circle_outlineMódulo 6 | 7 clases
Autenticación de usuarios
expand_more -
check_circle_outlineMódulo 7 | 10 clases
CRUD - Crear, Leer, Actualizar y Eliminar
expand_more -
check_circle_outlineMódulo 8 | 3 clases
Servidor de correos
expand_more -
check_circle_outlineMódulo 9 | 5 clases
Extras
expand_more