El enrutamiento es uno de los conceptos fundamentales en Flask y en cualquier framework web. Permite definir cómo las URLs de tu aplicación web se mapean a funciones específicas en tu código. En esta sección, aprenderás cómo configurar rutas en Flask, cómo manejar parámetros en las URLs y cómo trabajar con diferentes métodos HTTP.

Conceptos Clave

  1. Rutas: Las rutas son las URLs que los usuarios pueden visitar en tu aplicación.
  2. Decoradores: En Flask, los decoradores @app.route se utilizan para asociar una URL con una función.
  3. Parámetros de URL: Puedes capturar partes de la URL como parámetros y pasarlos a tus funciones.
  4. Métodos HTTP: Flask permite manejar diferentes métodos HTTP como GET, POST, PUT, DELETE, etc.

Configuración Básica de Rutas

Ejemplo Básico

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "¡Bienvenido a mi aplicación Flask!"

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

Explicación:

  • from flask import Flask: Importa la clase Flask.
  • app = Flask(__name__): Crea una instancia de la aplicación Flask.
  • @app.route('/'): Define una ruta para la URL raíz (/).
  • def home(): Define una función que se ejecutará cuando se visite la URL raíz.
  • app.run(debug=True): Inicia la aplicación en modo de depuración.

Parámetros en las URLs

Puedes capturar partes de la URL y pasarlas como parámetros a tus funciones.

@app.route('/user/<username>')
def show_user_profile(username):
    return f'Perfil del usuario: {username}'

Explicación:

  • @app.route('/user/<username>'): Define una ruta que captura el valor después de /user/ y lo pasa como parámetro username a la función show_user_profile.

Tipos de Parámetros

Puedes especificar el tipo de los parámetros en la URL.

@app.route('/post/<int:post_id>')
def show_post(post_id):
    return f'Post ID: {post_id}'

Explicación:

  • <int:post_id>: Especifica que post_id debe ser un entero.

Métodos HTTP

Por defecto, Flask maneja solo el método GET. Puedes especificar otros métodos como POST, PUT, DELETE, etc.

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        return "Procesando el formulario de login"
    else:
        return "Mostrando el formulario de login"

Explicación:

  • methods=['GET', 'POST']: Especifica que la ruta /login puede manejar tanto GET como POST.
  • request.method: Permite verificar el método HTTP utilizado.

Ejercicios Prácticos

Ejercicio 1: Ruta Básica

Crea una ruta que devuelva "Hola, Mundo!" cuando se visite la URL /hello.

@app.route('/hello')
def hello():
    return "Hola, Mundo!"

Ejercicio 2: Parámetros en la URL

Crea una ruta que capture un nombre de usuario y devuelva "Hola, [nombre]!" cuando se visite la URL /greet/<nombre>.

@app.route('/greet/<name>')
def greet(name):
    return f'Hola, {name}!'

Ejercicio 3: Métodos HTTP

Crea una ruta /submit que maneje tanto GET como POST. Si es GET, debe devolver "Formulario de envío". Si es POST, debe devolver "Datos enviados".

@app.route('/submit', methods=['GET', 'POST'])
def submit():
    if request.method == 'POST':
        return "Datos enviados"
    else:
        return "Formulario de envío"

Soluciones

Solución al Ejercicio 1

@app.route('/hello')
def hello():
    return "Hola, Mundo!"

Solución al Ejercicio 2

@app.route('/greet/<name>')
def greet(name):
    return f'Hola, {name}!'

Solución al Ejercicio 3

@app.route('/submit', methods=['GET', 'POST'])
def submit():
    if request.method == 'POST':
        return "Datos enviados"
    else:
        return "Formulario de envío"

Conclusión

En esta sección, has aprendido los conceptos básicos del enrutamiento y mapeo de URLs en Flask. Ahora sabes cómo definir rutas, manejar parámetros en las URLs y trabajar con diferentes métodos HTTP. Estos conocimientos son fundamentales para construir aplicaciones web dinámicas y funcionales con Flask.

En el próximo tema, exploraremos cómo manejar métodos HTTP en mayor detalle, lo que te permitirá crear aplicaciones más interactivas y robustas.

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