Flask es un microframework de desarrollo web escrito en
Python, diseñado para ser ligero, flexible y fácil de usar. Su
enfoque minimalista permite construir aplicaciones web
rápidamente sin necesidad de herramientas complejas o
configuraciones pesadas.
Características principales:
➢ Utiliza el patrón MVC (Modelo-Vista-Controlador) para organizar el código.
➢ Incluye un servidor de desarrollo integrado y soporte para pruebas unitarias.
➢ Permite definir rutas (@app.route) para manejar peticiones HTTP.
➢ Se puede ampliar fácilmente con extensiones como Flask-SQLAlchemy, Flask-
Login, entre otras.
➢ Compatible con Python 3 y el protocolo WSGI para desplegar en servidores web.
Recursos y Documentación:
Flask framework pequeño.
Link de Laravel Framework https://flask.palletsprojects.com/en/stable/
Terminología Flask
Flask: El núcleo del framework, utilizado para crear aplicaciones web.
Route (`@app.route`): Decorador que define las URL que activan funciones específicas.
Request: Objeto que representa datos enviados por el cliente (como formularios,
parámetros, etc.).
Response: Objeto que contiene los datos que la app envía de vuelta al cliente.
Render_template: Función que renderiza archivos HTML usando Jinja2.
Jinja2: Motor de plantillas que permite incrustar lógica en archivos HTML.
Debug mode: Modo que facilita el desarrollo al recargar la app automáticamente y
mostrar errores detallados.
Blueprint: Componente para dividir una app en partes reutilizables y organizadas.
Session: Sistema para almacenar información específica del usuario en el navegador.
Flask-WTF: Extensión para facilitar el manejo de formularios con validación.
Flask-SQLAlchemy: Extensión que integra SQLAlchemy para trabajar con bases de datos
relacionales.
Flask-Migrate: Herramienta que gestiona migraciones de base de datos.
Mg. Jaime Suasnábar Terrel
Flask-Login: Extensión que gestiona la autenticación y el inicio de sesión.
Contexto de aplicación: Entorno donde viven ciertas variables de configuración y estado.
Primera Aplicación Web en Flask
1. Instala Flask
Abre tu terminal y ejecuta:
pip install flask
2. Crea el archivo principal
Crea un archivo llamado app.py y escribe lo siguiente:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hola():
return '¡Hola Mundo desde Flask!'
if __name__ == '__main__':
app.run(debug=True)
3. Ejecuta la aplicación
En la terminal, ingresa a la carpeta donde guardaste app.py y ejecuta:
python app.py
Verás algo como:
Se ejecuta en http://127.0.0.1:5000/
¿Qué es Jinja2?
Jinja en Python es un motor de plantillas que permite generar contenido
dinámico, especialmente útil en aplicaciones web. Se utiliza para separar la
lógica del programa (backend) de la presentación visual (frontend), como el
HTML.Instalar PHP?
¿Cómo
¿Qué hace Jinja?
➢ Renderiza plantillas: Inserta datos dinámicos en archivos HTML u otros formatos.
➢ Usa estructuras de control: Puedes usar condicionales (if, else) y bucles (for)
como en Python.
➢ Permite herencia de plantillas: Puedes crear una plantilla base y extenderla en
otras.
Mg. Jaime Suasnábar Terrel
➢ Utiliza filtros y macros: Para modificar datos o reutilizar fragmentos de código.
Instalación de jinja2
pip install Jinja2
Estructura recomendada de proyecto
mi_proyecto/
├── app.py
└── templates/
├── base.html
└── index.html
Principales Sentencias de Jinja2
1. Variables {{ ... }}
Definición: Se usan para mostrar el valor de una variable en la plantilla.
Ejemplo:
<p>Hola {{ nombre }}</p>
Si nombre = "Luis", se mostrará: Hola Luis
2. Bucle for
Definición: Recorre una lista o secuencia y repite contenido.
Ejemplo:
<ul>
{% for fruta in frutas %}
<li>{{ fruta }}</li>
{% endfor %}
</ul>
Si frutas = ["manzana", "pera"], se mostrará una lista con esos elementos.
3. Condicional if, elif, else
Definición: Muestra contenido según condiciones.
Ejemplo:
{% if edad >= 18 %}
<p>Eres mayor de edad.</p>
{% elif edad >= 13 %}
<p>Eres adolescente.</p>
{% else %}
<p>Eres niño.</p>
{% endif %}
4. Herencia de plantillas extends y block
Definición: Permite reutilizar una plantilla base y definir bloques que se pueden
sobrescribir.
Mg. Jaime Suasnábar Terrel