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>
-
Módulo 1 | 17 clases
Introducción y Fundamentos
expand_more-
play_circle_outline
Clase 1
Introducción al curso de Python Web
-
play_circle_outline
Clase 2
Qué es Flask
-
play_circle_outline
Clase 3
WSGI python
-
play_circle_outline
Clase 4
Entorno de desarrollo e instalación de Flask
-
play_circle_outline
Clase 5
Crear servidor de Flask
-
play_circle_outline
Clase 6
Hola mundo (primera página web)
-
play_circle_outline
Clase 7
Renderizar template
-
play_circle_outline
Clase 8
Páginas web dinámicas
-
play_circle_outline
Clase 9
Ciclos y condicionales
-
play_arrow
Clase 10
Plantillas Jinja2
-
play_circle_outline
Clase 11
Parámetros
-
play_circle_outline
Clase 12
¿Qué es el query string?
-
play_circle_outline
Clase 13
Lectura de queries
-
play_circle_outline
Clase 14
Archivos estáticos
-
play_circle_outline
Clase 15
Herencia de plantillas
-
play_circle_outline
Clase 16
Links
-
play_circle_outline
Clase 17
Callbacks
-
-
Módulo 2 | 7 clases
Proyecto del curso
expand_more-
play_circle_outline
Clase 1
Estructura del proyecto
-
play_circle_outline
Clase 2
Urls
-
play_circle_outline
Clase 3
Manejo de archivos estáticos
-
play_circle_outline
Clase 4
Errores y manejo
-
play_circle_outline
Clase 5
Archivos de configuraciones
-
play_circle_outline
Clase 6
Integración con Bootstrap
-
play_circle_outline
Clase 7
Layout Principal
-
-
Módulo 3 | 7 clases
Formularios
expand_more-
play_circle_outline
Clase 1
Crear formulario
-
play_circle_outline
Clase 2
Pintar formulario
-
play_circle_outline
Clase 3
Macros
-
play_circle_outline
Clase 4
Macros en Jinja2
-
play_circle_outline
Clase 5
Obtener valores del formulario
-
play_circle_outline
Clase 6
CSRF
-
play_circle_outline
Clase 7
Validaciones
-
-
Módulo 4 | 6 clases
Modelos
expand_more-
play_circle_outline
Clase 1
Conexión con la base de datos
-
play_circle_outline
Clase 2
Crear tabla de usuarios
-
play_circle_outline
Clase 3
Formulario para crear usuarios
-
play_circle_outline
Clase 4
Registrar usuario
-
play_circle_outline
Clase 5
Mensaje flashed
-
play_circle_outline
Clase 6
Generar contraseña
-
-
Módulo 5 | 4 clases
Validaciones
expand_more -
Módulo 6 | 7 clases
Autenticación de usuarios
expand_more-
play_circle_outline
Clase 1
Obtener (buscar) usuario
-
play_circle_outline
Clase 2
Generar sesión
-
play_circle_outline
Clase 3
Mensajes por categorías
-
play_circle_outline
Clase 4
Cerrar sesión
-
play_circle_outline
Clase 5
Login requerido
-
play_circle_outline
Clase 6
Obtener al usuario actual
-
play_circle_outline
Clase 7
Archivo de constantes
-
-
Módulo 7 | 10 clases
CRUD - Crear, Leer, Actualizar y Eliminar
expand_more-
play_circle_outline
Clase 1
Modelo de tareas
-
play_circle_outline
Clase 2
Formulario para crear tareas
-
play_circle_outline
Clase 3
Crear tareas
-
play_circle_outline
Clase 4
Listar tareas
-
play_circle_outline
Clase 5
Editar estructura de la tabla
-
play_circle_outline
Clase 6
Editar tarea
-
play_circle_outline
Clase 7
Eliminar tarea
-
play_circle_outline
Clase 8
Paginación
-
play_circle_outline
Clase 9
Mostrar tarea
-
play_circle_outline
Clase 10
Clase active
-
-
Módulo 8 | 3 clases
Servidor de correos
expand_more