Aprender Flask Introducción y entorno

Módulo del curso de Flask

Flask
Flask
Módulo del curso
2 lecciones
Actualizado: 20/06/2025

Módulo: Introducción y entorno

Este módulo forma parte del curso de Flask. Incluye 2 lecciones .

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

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.

Otros módulos de este curso

Módulo actual

Introducción y entorno

Lecciones de este módulo

Explora todas las lecciones disponibles en Introducción y entorno

Todos los módulos del curso

Navega entre los módulos de Flask

Introducción y entorno

Estás aquí

Explora más sobre Flask

Descubre más recursos de Flask

Alan Sastre - Autor del curso

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Flask es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.