Logo de Código Facilito
  • Inicio
  • Replays
  • Iniciar sesión
  • Crear cuenta
  • Explorar cursos
  • Bootcamps
  • Precios
  • Blog

¡Califica el Curso Profesional de Desarrollo Web con Python!

Selecciona la calificación de 1 a 5 estrellas

Reporta un error

Curso Curso Profesional de Desarrollo Web con Python

Video Plantillas Jinja2

Tipo de error

Algo salió mal al cargar el vídeo

El vídeo no pudo cargarse, hemos enviado un reporte al equipo de desarrollo, para poder solucionarlo a la brevedad.

Mientras solucionamos el problema, intenta lo siguiente para solucionar el error:

  • Recarga la página
  • Intenta reiniciar tu navegador y luego vuelve a reproducir el vídeo
  • Vacía el caché de tu navegador
  • Intenta reproducir con las extensiones del navegador deshabilitadas
  • Intenta con un navegador distinto
  • Si el problema persiste contáctanos en Discord
home Ir al inicio report_problem Reportar falla star Valorar curso

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_outline
    Mó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_outline
    Módulo 2 | 7 clases

    Proyecto del curso

    expand_more
  • check_circle_outline
    Módulo 3 | 7 clases

    Formularios

    expand_more
  • check_circle_outline
    Módulo 4 | 6 clases

    Modelos

    expand_more
  • check_circle_outline
    Módulo 5 | 4 clases

    Validaciones

    expand_more
  • check_circle_outline
    Módulo 6 | 7 clases

    Autenticación de usuarios

    expand_more
  • check_circle_outline
    Módulo 7 | 10 clases

    CRUD - Crear, Leer, Actualizar y Eliminar

    expand_more
  • check_circle_outline
    Módulo 8 | 3 clases

    Servidor de correos

    expand_more
  • check_circle_outline
    Módulo 9 | 5 clases

    Extras

    expand_more

Plantillas Jinja2

arrow_back Siguiente arrow_forward
Curso Profesional de Desarrollo Web con Python