Contenido del curso
Rutas y Plantillas con Jinja
Manejo de Formularios y Datos
Organización del Proyecto y Mejoras
Seguridad y Testing
- 14

Sesiones en Flask con blueprints y cookies
09:09 min - 15

Implementación de Login y Logout con Validación de Sesiones
03:35 min - 16

Validación de formularios en Flask con mensajes de error
Viendo ahora - 17

Pruebas Unitarias en Flask: Creación y Configuración
12:50 min - 18

Desarrollo de Microservicios con Flask
02:54 min
Validación de formularios en Flask con mensajes de error
Resumen
Validar formularios en Flask es una práctica clave para evitar que los usuarios guarden información incompleta o incorrecta en tu base de datos. Aquí aprenderás a verificar campos como título y contenido antes de insertarlos, mostrando mensajes de error claros cuando los datos no cumplan tus reglas.
¿Por qué validar la información del lado del servidor en Flask?
Cuando un usuario envía datos desde un formulario, no siempre llegan en el formato que esperas. Un título de tres letras o una nota vacía pueden romper la lógica de tu aplicación o llenar la base de datos con registros poco útiles.
Por eso conviene revisar la información justo antes de la inserción. Así, si algo falla, le muestras al usuario un mensaje específico y evitas guardar registros inválidos.
¿Qué es validar un formulario? Es comprobar que los datos enviados cumplen reglas mínimas (longitud, formato, tipo) antes de procesarlos o guardarlos.
¿Cómo agregar validaciones manuales a las rutas de crear y editar nota?
En el archivo de rutas, ubica las funciones de crear y editar nota. Ahí tienes acceso al title y al content que llegan desde el formulario. La idea es interceptar esos valores antes de la lógica que guarda en base de datos.
Un patrón sencillo es usar strip() para limpiar espacios y luego contar caracteres con len(). Si el campo no cumple, renderizas la vista de nuevo con un flash message de tipo error, en lugar de continuar con la inserción.
¿Cómo validar la longitud del título?
Para el título puedes definir un mínimo de 10 caracteres. La validación queda así de directa:
- Aplicas
title.strip()para quitar espacios al inicio y al final. - Cuentas los caracteres con
len(). - Si son menos de 10, muestras "El título es muy corto. Mínimo 10" con un flash de tipo
error. - Haces
render_templatepara devolver al usuario al formulario sin guardar la nota.
El base.html ya está preparado para mostrar ese mensaje automáticamente, así que no necesitas tocar la plantilla.
¿Cómo validar el contenido mínimo de la nota?
Para el contenido, el criterio es más exigente: al menos 300 caracteres. La lógica es la misma que con el título, solo cambias el umbral y el mensaje de error.
Duplicas las líneas, ajustas el texto a "El contenido es muy corto" y listo. Con esto cubres ambos campos del formulario antes de que la nota llegue a la base de datos.
¿Dónde se debe colocar la validación en la ruta? Justo antes del bloque que crea el objeto y lo guarda en base de datos, para que el flujo se detenga si los datos no son válidos.
¿Cómo probar que las validaciones funcionan en el formulario?
Levanta el servidor y abre el formulario de crear nota. Si escribes un título tipo "Hola, texto corto", al dar clic en crear nota verás el mensaje "El título es muy corto, mínimo 10". Es la señal de que la validación se ejecutó antes de la inserción.
Si pegas un lorem ipsum largo en el contenido y un título suficientemente largo, la nota se crea correctamente. Notarás que el diseño del mensaje puede verse afectado: ese ajuste visual queda como reto para que lo trabajes en tu CSS.
¿Qué librerías de Flask sirven para validar formularios más escalables?
Las validaciones manuales funcionan bien para casos simples, pero cuando tu aplicación crece conviene apoyarte en librerías especializadas. Flask ofrece varias opciones que se integran igual que SQLAlchemy: las instalas, las importas y defines reglas reutilizables.
La más común es Flask-WTF, que te permite declarar formularios como clases, asignar validadores a cada campo (longitud mínima, formato de email, requeridos) y manejar errores de forma centralizada. Es ideal cuando tienes muchos formularios o reglas complejas.
Como reto, instala Flask-WTF y agrega varias reglas de validación a los campos de título y contenido. Comparte en los comentarios qué validaciones aplicaste y cómo las estructuraste.