Introducción y entorno

Flask
Flask
Actualizado: 20/06/2025

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

Introducción y entorno

Flask representa una de las opciones más elegantes y flexibles para el desarrollo web en Python. Este framework web minimalista se caracteriza por su filosofía de proporcionar las herramientas esenciales sin imponer decisiones arquitectónicas rígidas, permitiendo a los desarrolladores construir aplicaciones web desde componentes simples hasta sistemas complejos.

La arquitectura modular de Flask se basa en el concepto de microframework, lo que significa que incluye únicamente las funcionalidades básicas necesarias para crear aplicaciones web. Esta aproximación contrasta con frameworks más pesados, ofreciendo mayor control sobre la estructura y componentes de la aplicación.

Características fundamentales

Flask utiliza Werkzeug como biblioteca WSGI y Jinja2 como motor de plantillas, proporcionando una base sólida para el manejo de peticiones HTTP y la generación de contenido dinámico. La flexibilidad inherente del framework permite integrar fácilmente bibliotecas adicionales según las necesidades específicas del proyecto.

El sistema de enrutamiento de Flask emplea decoradores Python para asociar URLs con funciones, creando una sintaxis intuitiva y legible. Esta característica facilita la organización del código y la comprensión de la estructura de la aplicación.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def inicio():
    return '<h1>Bienvenido a Flask</h1>'

@app.route('/usuario/<nombre>')
def perfil_usuario(nombre):
    return f'<h1>Perfil de {nombre}</h1>'

Configuración del entorno de desarrollo

La instalación de Flask requiere un entorno Python adecuadamente configurado. Python 3.13 incluye mejoras significativas en rendimiento y nuevas características que Flask aprovecha eficientemente.

Creación del entorno virtual:

python -m venv flask_env

Activación del entorno (Windows):

flask_env\Scripts\activate

Activación del entorno (macOS/Linux):

source flask_env/bin/activate

Instalación de Flask:

pip install Flask

El uso de entornos virtuales resulta fundamental para mantener las dependencias del proyecto aisladas y evitar conflictos entre diferentes versiones de bibliotecas.

Estructura básica de una aplicación

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

Una aplicación Flask mínima requiere únicamente unas pocas líneas de código. La instancia de la aplicación actúa como punto central donde se registran las rutas, configuraciones y extensiones.

from flask import Flask

# Crear la instancia de la aplicación
app = Flask(__name__)

# Definir una ruta básica
@app.route('/')
def pagina_principal():
    return '¡Hola desde Flask!'

# Ejecutar la aplicación en modo desarrollo
if __name__ == '__main__':
    app.run(debug=True)

El modo debug activa la recarga automática del servidor cuando se detectan cambios en el código, además de proporcionar información detallada sobre errores durante el desarrollo.

Variables de entorno y configuración

Flask utiliza variables de entorno para gestionar configuraciones sensibles y específicas del entorno de ejecución. La variable FLASK_APP especifica el archivo principal de la aplicación, mientras que FLASK_ENV determina el modo de ejecución.

Configuración mediante variables de entorno:

export FLASK_APP=app.py
export FLASK_DEBUG=1

Configuración programática:

import os
from flask import Flask

app = Flask(__name__)

# Configuración desde variables de entorno
app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY', 'clave-por-defecto')
app.config['DEBUG'] = os.environ.get('FLASK_DEBUG', False)

Servidor de desarrollo integrado

Flask incluye un servidor de desarrollo basado en Werkzeug que facilita las pruebas locales. Este servidor no está diseñado para producción, pero resulta ideal durante el desarrollo por su simplicidad y características de depuración.

Ejecución del servidor:

flask run

Especificación de host y puerto:

flask run --host=0.0.0.0 --port=8000

El servidor de desarrollo incluye recarga automática cuando se modifican archivos del proyecto, acelerando el ciclo de desarrollo y pruebas.

Gestión de dependencias

La gestión eficiente de dependencias resulta crucial para mantener proyectos Flask organizados y reproducibles. El archivo requirements.txt documenta las bibliotecas necesarias y sus versiones específicas.

Generación del archivo de dependencias:

pip freeze > requirements.txt

Instalación desde requirements.txt:

pip install -r requirements.txt

Esta práctica garantiza que otros desarrolladores puedan replicar exactamente el entorno de desarrollo, evitando problemas de compatibilidad entre diferentes versiones de bibliotecas.

Herramientas de desarrollo recomendadas

El ecosistema de herramientas alrededor de Flask incluye extensiones y utilidades que mejoran significativamente la experiencia de desarrollo. Estas herramientas abordan aspectos como depuración, testing y gestión de bases de datos.

Flask-CLI proporciona comandos adicionales para tareas comunes de desarrollo, mientras que Flask-Shell ofrece un intérprete interactivo con el contexto de la aplicación precargado.

from flask import Flask

app = Flask(__name__)

@app.cli.command()
def inicializar_db():
    """Comando personalizado para inicializar la base de datos."""
    print('Inicializando base de datos...')
    # Lógica de inicialización aquí

La integración con IDEs modernos como Visual Studio Code o PyCharm proporciona características avanzadas como autocompletado, depuración visual y detección de errores en tiempo real, optimizando el flujo de trabajo de desarrollo.

Completa Flask y certifícate

Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración