Misión 3 · Lección 4

Formularios y Manejo de Datos en Flask

Objetivos

Ejemplo de Formulario HTML

<form action="/login" method="POST">
            <input type="text" name="usuario" placeholder="Usuario">
            <input type="password" name="clave" placeholder="Contraseña">
            <button type="submit">Ingresar</button>
            </form>

Manejo de Formularios en Flask

from flask import request

            @app.route("/login", methods=["GET", "POST"])
            def login():
                if request.method == "POST":
                    usuario = request.form["usuario"]
                    clave = request.form["clave"]
                    return f"Usuario: {usuario}, Clave: {clave}"
                return render_template("login.html")

Método GET

/search?q=flask

Método POST

Validación Básica

@app.route("/register", methods=["POST"])
            def register():
                usuario = request.form["usuario"]
                if not usuario:
                    return "El campo usuario es obligatorio"
                return f"Registrado: {usuario}"

Mostrar Mensajes al Usuario

from flask import flash, redirect, url_for

            app.secret_key = "clave_secreta"

            @app.route("/login", methods=["POST"])
            def login():
                usuario = request.form["usuario"]
                if usuario != "admin":
                    flash("Usuario incorrecto")
                    return redirect(url_for("form_login"))
                flash("Bienvenido")
                return redirect(url_for("home"))

Protección contra CSRF

Para mayor seguridad, se recomienda usar la extensión Flask-WTF:

pip install flask-wtf

Agrega un token de seguridad oculto en los formularios.

Buenas Prácticas

Ejercicio Guiado

  1. Crea un formulario de inicio de sesión con usuario y clave.
  2. Procesa el formulario en una ruta Flask usando POST.
  3. Agrega validación para evitar campos vacíos.
  4. Usa flash() para mostrar mensajes de error o éxito.