Motor de plantillas Flask: Flask emplea Jinja2 como su herramienta principal para generar y manejar plantillas. Aunque podrías optar por otro motor de plantillas, Jinja2 sigue siendo esencial para el funcionamiento básico de Flask. La presencia de Jinja2 es fundamental para aprovechar al máximo las extensiones avanzadas, ya que muchas de ellas requieren su disponibilidad.
Motor de PLANTILLAS Flask | render_template Flask
Observa el siguiente vídeo paso a paso y aprende el uso del motor de plantillas Flask, Jinja2, podrás ver lo fácil que es añadir dinamismo a tus aplicaciones Web con Python.
Aspectos importantes de Jinja2
Flask configura Jinja2 de la siguiente manera:
- Habilita el autoescapado para todas las plantillas que terminan en .html, .htm, .xml, .xhtml, así como .svg cuando se utiliza render_template().
- Activa el autoescapado para todas las cadenas cuando se usa render_template_string().
- Una plantilla puede elegir si activar o no el autoescapado utilizando la etiqueta {% autoescape %}.
- Flask añade un conjunto de funciones globales y asistentes al contexto de Jinja2, junto con los valores predeterminados.
Para comprender los siguientes bloques de código te invito a ver el vídeo anterior, sin duda quedarás con los conocimientos necesarios para el manejo de plantillas.
🌟 ¡Visita Nuestra Tienda para Programadores! 🌟Descubre Códigos Fuente, Cursos, Software, Computadoras, Accesorios y Regalos Exclusivos. ¡Todo lo que necesitas para llevar tu programación al siguiente nivel!
Renderizar una página
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
Enviar datos a una plantilla
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
user = {'username': 'John', 'email': 'john@example.com'}
return render_template('index.html', user=user)
if __name__ == '__main__':
app.run(debug=True)
Utilizar estructuras de control con Jinja2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>User Profile</title>
</head>
<body>
<h1>Welcome, {{ user.username }}!</h1>
{% if user.email %}
<p>Your email is: {{ user.email }}</p>
{% else %}
<p>No email provided</p>
{% endif %}
</body>
</html>
¿Ya culminaste esta lección?, pasa a la siguiente y aprende más sobre este Micro Framework para Python y crea tus propias aplicaciones Web.