gcdoramas.com

Formularios en Flask

Formularios en Flask

Formularios en Flask: cómo usar GET y POST
¿Qué son los formularios en Flask?

Los formularios permiten que los usuarios envíen datos desde una página web hacia tu aplicación Flask. Son esenciales para funcionalidades como:

Login de usuarios
Registro
Búsquedas
Envío de información

Flask maneja formularios principalmente a través de los métodos HTTP GET y POST.

Métodos GET vs POST
GET
Envía datos a través de la URL
Visible en el navegador
Ideal para búsquedas

Ejemplo:

/buscar?nombre=juan
POST
Envía datos de forma oculta
Más seguro que GET
Ideal para formularios sensibles (login, registros)
Crear un formulario básico
HTML (templates/formulario.html)



Formulario



Formulario de ejemplo










Capturar datos en Flask
app.py
from flask import Flask, render_template, request

app = Flask(__name__)

@app.route("/formulario", methods=["GET", "POST"])
def formulario():
if request.method == "POST":
nombre = request.form.get("nombre")
return f"Hola, {nombre}"

return render_template("formulario.html")
¿Cómo funciona?
El usuario abre la página → método GET
Llena el formulario
Envía datos → método POST
Flask recibe los datos con request.form
Múltiples campos en un formulario





Captura en Flask
if request.method == "POST":
nombre = request.form.get("nombre")
email = request.form.get("email")
Validación básica

Nunca confíes en los datos del usuario sin validar:

if not nombre:
return "El nombre es obligatorio"

También puedes validar desde HTML:


Redireccionar después de enviar

Es buena práctica redirigir después de un POST:

from flask import redirect, url_for

return redirect(url_for("formulario"))

Esto evita que el formulario se envíe varias veces al recargar.

Mostrar datos en otra página

Puedes enviar datos a otra ruta:

@app.route("/resultado")
def resultado():
nombre = request.args.get("nombre")
return f"Hola {nombre}"
Buenas prácticas
Usa POST para datos sensibles
Valida siempre los datos
Usa redirect() después de POST
No mezcles demasiada lógica en el HTML
Considera usar Flask-WTF para formularios más avanzados
Errores comunes
Olvidar methods=["GET", "POST"]
Usar mal request.form vs request.args
No validar datos
No manejar campos vacíos
Conclusión

Los formularios son el puente entre el usuario y tu aplicación. Con Flask puedes manejarlos fácilmente y construir desde simples entradas hasta sistemas completos de autenticación.

Dominar GET y POST es clave para crear aplicaciones web interactivas.