El enrutamiento es uno de los conceptos fundamentales en Flask y en cualquier framework web. Permite definir cómo las URLs de tu aplicación web se mapean a funciones específicas en tu código. En esta sección, aprenderás cómo configurar rutas en Flask, cómo manejar parámetros en las URLs y cómo trabajar con diferentes métodos HTTP.
Conceptos Clave
- Rutas: Las rutas son las URLs que los usuarios pueden visitar en tu aplicación.
- Decoradores: En Flask, los decoradores
@app.routese utilizan para asociar una URL con una función. - Parámetros de URL: Puedes capturar partes de la URL como parámetros y pasarlos a tus funciones.
- Métodos HTTP: Flask permite manejar diferentes métodos HTTP como GET, POST, PUT, DELETE, etc.
Configuración Básica de Rutas
Ejemplo Básico
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "¡Bienvenido a mi aplicación Flask!"
if __name__ == '__main__':
app.run(debug=True)Explicación:
from flask import Flask: Importa la clase Flask.app = Flask(__name__): Crea una instancia de la aplicación Flask.@app.route('/'): Define una ruta para la URL raíz (/).def home(): Define una función que se ejecutará cuando se visite la URL raíz.app.run(debug=True): Inicia la aplicación en modo de depuración.
Parámetros en las URLs
Puedes capturar partes de la URL y pasarlas como parámetros a tus funciones.
@app.route('/user/<username>')
def show_user_profile(username):
return f'Perfil del usuario: {username}'Explicación:
@app.route('/user/<username>'): Define una ruta que captura el valor después de/user/y lo pasa como parámetrousernamea la funciónshow_user_profile.
Tipos de Parámetros
Puedes especificar el tipo de los parámetros en la URL.
Explicación:
<int:post_id>: Especifica quepost_iddebe ser un entero.
Métodos HTTP
Por defecto, Flask maneja solo el método GET. Puedes especificar otros métodos como POST, PUT, DELETE, etc.
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
return "Procesando el formulario de login"
else:
return "Mostrando el formulario de login"Explicación:
methods=['GET', 'POST']: Especifica que la ruta/loginpuede manejar tanto GET como POST.request.method: Permite verificar el método HTTP utilizado.
Ejercicios Prácticos
Ejercicio 1: Ruta Básica
Crea una ruta que devuelva "Hola, Mundo!" cuando se visite la URL /hello.
Ejercicio 2: Parámetros en la URL
Crea una ruta que capture un nombre de usuario y devuelva "Hola, [nombre]!" cuando se visite la URL /greet/<nombre>.
Ejercicio 3: Métodos HTTP
Crea una ruta /submit que maneje tanto GET como POST. Si es GET, debe devolver "Formulario de envío". Si es POST, debe devolver "Datos enviados".
@app.route('/submit', methods=['GET', 'POST'])
def submit():
if request.method == 'POST':
return "Datos enviados"
else:
return "Formulario de envío"Soluciones
Solución al Ejercicio 1
Solución al Ejercicio 2
Solución al Ejercicio 3
@app.route('/submit', methods=['GET', 'POST'])
def submit():
if request.method == 'POST':
return "Datos enviados"
else:
return "Formulario de envío"Conclusión
En esta sección, has aprendido los conceptos básicos del enrutamiento y mapeo de URLs en Flask. Ahora sabes cómo definir rutas, manejar parámetros en las URLs y trabajar con diferentes métodos HTTP. Estos conocimientos son fundamentales para construir aplicaciones web dinámicas y funcionales con Flask.
En el próximo tema, exploraremos cómo manejar métodos HTTP en mayor detalle, lo que te permitirá crear aplicaciones más interactivas y robustas.
Curso de Desarrollo Web con Flask
Módulo 1: Introducción a Flask
- ¿Qué es Flask?
- Configuración de tu Entorno de Desarrollo
- Creando tu Primera Aplicación Flask
- Entendiendo la Estructura de una Aplicación Flask
Módulo 2: Conceptos Básicos de Flask
- Enrutamiento y Mapeo de URLs
- Manejo de Métodos HTTP
- Renderizando Plantillas con Jinja2
- Trabajando con Archivos Estáticos
Módulo 3: Formularios y Entrada de Usuario
Módulo 4: Integración de Bases de Datos
- Introducción a Flask-SQLAlchemy
- Definiendo Modelos
- Realizando Operaciones CRUD
- Migraciones de Base de Datos con Flask-Migrate
Módulo 5: Autenticación de Usuarios
- Registro de Usuarios
- Inicio y Cierre de Sesión de Usuarios
- Hashing de Contraseñas
- Gestión de Sesiones de Usuario
Módulo 6: Conceptos Avanzados de Flask
- Blueprints para Aplicaciones Grandes
- Manejo de Errores
- Páginas de Error Personalizadas
- Registro y Depuración
Módulo 7: APIs RESTful con Flask
- Introducción a las APIs RESTful
- Creación de Endpoints RESTful
- Manejo de Datos JSON
- Autenticación para APIs
Módulo 8: Despliegue y Producción
- Configuración de Flask para Producción
- Despliegue en Heroku
- Despliegue en AWS
- Monitoreo y Optimización del Rendimiento
Módulo 9: Pruebas y Mejores Prácticas
- Pruebas Unitarias con Flask
- Pruebas de Integración
- Cobertura de Pruebas
- Mejores Prácticas para el Desarrollo con Flask
