Templates con Jinja 2

Clase 9 de 36Curso de Flask

Resumen

¿Qué es un template de Flask y cómo se utiliza?

Si estás incursionando en el desarrollo web con Flask, es crucial entender cómo funcionan los templates. Un template en Flask es un archivo HTML que te permite renderear tanto información estática como dinámica. Al pasar variables a este template, éstas se procesan para que el servidor o el navegador las muestren al usuario. Por ejemplo, podrías enviar la dirección IP del usuario al HTML en lugar de simplemente devolver una cadena de texto.

¿Cómo integrar templates HTML en tu aplicación Flask?

Para transformar la respuesta de una cadena estática a un archivo HTML, sigue estos pasos:

  1. Crea un nuevo directorio llamado 'templates': Flask busca por defecto en este directorio los archivos HTML que necesitas pasarle.

  2. Guarda tus templates dentro de este directorio: Aquí será donde los guardarás, asegurándote de que el nombre del archivo corresponda a lo que vas a renderear.

Por ejemplo, si deseas que la ruta hello devuelva el texto "hello world platzi" y la dirección IP del usuario, debes hacer lo siguiente:

  • Crea un archivo HTML llamado hello.html.
  • Modifica la ruta para que devuelva el template, no una cadena estática.

¿Cómo modificar la ruta para usar templates?

Al igual que con redirect y mail response, necesitas importar render_template desde Flask. Luego, modifica el código para utilizarlo:

from flask import render_template

@app.route('/hello')
def hello():
    user_ip = request.remote_addr  # Ejemplo de obtención de IP
    return render_template('hello.html', user_ip=user_ip)

En este ejemplo, el template llamado es hello.html y se le envía la IP del usuario como segundo parámetro.

¿Cómo renderear un template con Flask?

En su uso básico, las sintaxis de Flask y Jinja2 facilitan la inclusión de variables en tus templates. Para incluir una variable, utiliza dobles llaves–por ejemplo, {{ user_ip }}–dentro del HTML. Aquí tienes un pequeño ejemplo de cómo podría verse tu archivo hello.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
    <h1>Hello world Platzi! Tu IP es {{ user_ip }}</h1>
</body>
</html>

Consejos prácticos para trabajar con templates en Flask

  • Organiza tus archivos: Siempre coloca tus archivos HTML en el directorio templates para mantener una estructura clara y estándar para tu aplicación Flask.
  • Usa variables: Aprovecha la capacidad de pasar variables al template para personalizar la experiencia del usuario.
  • Reutiliza templates: Si tienes partes fijas o similares en varias páginas, como cabeceras o pies de página, reutiliza templates para mantener consistencia y eficiencia.

Con estos conocimientos, estarás bien encaminado para crear aplicaciones web dinámicas y profesionales con Flask. ¡Sigue explorando y experimentando, la práctica conduce al éxito!