En este tema, aprenderemos cómo manejar diferentes métodos HTTP en Flask. Los métodos HTTP son fundamentales para la comunicación entre el cliente y el servidor en aplicaciones web. Los métodos más comunes son GET y POST, pero también existen otros como PUT, DELETE, PATCH, etc.

Conceptos Clave

  1. Métodos HTTP Comunes:

    • GET: Solicita datos del servidor. No debe modificar el estado del servidor.
    • POST: Envía datos al servidor para crear o actualizar un recurso.
    • PUT: Actualiza un recurso existente en el servidor.
    • DELETE: Elimina un recurso del servidor.
    • PATCH: Aplica modificaciones parciales a un recurso.
  2. Decoradores de Rutas en Flask:

    • Flask utiliza decoradores para asociar funciones de vista con rutas y métodos HTTP específicos.

Ejemplo Práctico

Vamos a crear una aplicación Flask que maneje diferentes métodos HTTP.

Paso 1: Configuración Inicial

Primero, asegúrate de tener Flask instalado. Si no lo tienes, puedes instalarlo usando pip:

pip install Flask

Paso 2: Creando la Aplicación Flask

Crea un archivo llamado app.py y agrega el siguiente código:

from flask import Flask, request, jsonify

app = Flask(__name__)

# Ruta para manejar el método GET
@app.route('/get-example', methods=['GET'])
def get_example():
    return jsonify(message="This is a GET request")

# Ruta para manejar el método POST
@app.route('/post-example', methods=['POST'])
def post_example():
    data = request.get_json()
    return jsonify(message="This is a POST request", data=data)

# Ruta para manejar el método PUT
@app.route('/put-example', methods=['PUT'])
def put_example():
    data = request.get_json()
    return jsonify(message="This is a PUT request", data=data)

# Ruta para manejar el método DELETE
@app.route('/delete-example', methods=['DELETE'])
def delete_example():
    return jsonify(message="This is a DELETE request")

if __name__ == '__main__':
    app.run(debug=True)

Explicación del Código

  1. Importaciones:

    from flask import Flask, request, jsonify
    
    • Flask: Clase principal de Flask.
    • request: Objeto que contiene los datos de la solicitud HTTP.
    • jsonify: Función para convertir datos en formato JSON.
  2. Creación de la Aplicación:

    app = Flask(__name__)
    
    • Inicializa la aplicación Flask.
  3. Definición de Rutas y Métodos:

    • GET:

      @app.route('/get-example', methods=['GET'])
      def get_example():
          return jsonify(message="This is a GET request")
      
      • Define una ruta /get-example que maneja solicitudes GET.
      • Devuelve un mensaje en formato JSON.
    • POST:

      @app.route('/post-example', methods=['POST'])
      def post_example():
          data = request.get_json()
          return jsonify(message="This is a POST request", data=data)
      
      • Define una ruta /post-example que maneja solicitudes POST.
      • Obtiene los datos JSON enviados en la solicitud y los devuelve junto con un mensaje.
    • PUT:

      @app.route('/put-example', methods=['PUT'])
      def put_example():
          data = request.get_json()
          return jsonify(message="This is a PUT request", data=data)
      
      • Define una ruta /put-example que maneja solicitudes PUT.
      • Similar al POST, obtiene y devuelve los datos JSON.
    • DELETE:

      @app.route('/delete-example', methods=['DELETE'])
      def delete_example():
          return jsonify(message="This is a DELETE request")
      
      • Define una ruta /delete-example que maneja solicitudes DELETE.
      • Devuelve un mensaje en formato JSON.
  4. Ejecución de la Aplicación:

    if __name__ == '__main__':
        app.run(debug=True)
    
    • Ejecuta la aplicación en modo de depuración.

Ejercicio Práctico

  1. Objetivo: Crear una nueva ruta que maneje el método PATCH.
  2. Instrucciones:
    • Define una ruta /patch-example que maneje solicitudes PATCH.
    • Obtén los datos JSON enviados en la solicitud y devuélvelos junto con un mensaje.

Solución del Ejercicio

@app.route('/patch-example', methods=['PATCH'])
def patch_example():
    data = request.get_json()
    return jsonify(message="This is a PATCH request", data=data)

Resumen

En esta sección, hemos aprendido cómo manejar diferentes métodos HTTP en Flask utilizando decoradores de rutas. Hemos cubierto los métodos GET, POST, PUT, DELETE y PATCH, y hemos visto cómo obtener y devolver datos en formato JSON.

En el siguiente tema, exploraremos cómo renderizar plantillas con Jinja2 para crear interfaces de usuario dinámicas.

Curso de Desarrollo Web con Flask

Módulo 1: Introducción a Flask

Módulo 2: Conceptos Básicos de Flask

Módulo 3: Formularios y Entrada de Usuario

Módulo 4: Integración de Bases de Datos

Módulo 5: Autenticación de Usuarios

Módulo 6: Conceptos Avanzados de Flask

Módulo 7: APIs RESTful con Flask

Módulo 8: Despliegue y Producción

Módulo 9: Pruebas y Mejores Prácticas

Módulo 10: Extensiones y Ecosistema de Flask

© Copyright 2024. Todos los derechos reservados