Formularios y Manejo de Datos POST en Flask

  Formularios y Manejo de Datos

En esta sección, aprenderás a crear y manejar formularios HTML en Flask y cómo recibir y procesar datos enviados mediante el método POST.

Cómo crear y manejar formularios HTML

Para crear un formulario HTML básico en Flask, debes crear un archivo en la carpeta templates de tu proyecto. En este caso, puedes llamarlo formulario.html. Asegúrate de utilizar la etiqueta <form> y diferentes elementos de entrada según lo que necesites recolectar del usuario.

A continuación, te muestro un ejemplo de un formulario simple:

html
<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="UTF-8">
  <title>{% block title %}Título por defecto{% endblock %}</title>
</head>
<body>
  <form action="/enviar" method="POST">
      <label for="nombre">Nombre:</label>
      <input type="text" id="nombre" name="nombre" required>
      <br>
      <label for="email">Email:</label>
      <input type="email" id="email" name="email" required>
      <br>
      <input type="submit" value="Enviar">
  </form>
</body>
</html>

Este formulario solicita un nombre y un email, y se enviará a la ruta /enviar cuando el usuario haga clic en el botón de “Enviar”.

Recibir y procesar datos enviados con el método POST

Para manejar los datos enviados por el formulario, debes definir una ruta en tu aplicación Flask que capture estos datos. Aquí tienes un ejemplo:

python
from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/enviar', methods=['POST'])
def enviar_datos():
  nombre = request.form['nombre']
  email = request.form['email']
  
  # Procesar los datos (por ejemplo, guardarlos en una base de datos)
  # Aquí simplemente los imprimimos por el momento
  print(f'Nombre: {nombre}, Email: {email}')
  
  return f'Datos recibidos: Nombre - {nombre}, Email - {email}'

En este ejemplo, la ruta /enviar acepta solicitudes POST. Utilizamos request.form para acceder a los datos enviados desde el formulario. Una vez que se reciben, puedes procesarlos según tus necesidades, como almacenarlos en una base de datos o realizar alguna acción adicional.