Introducción a las rutas y parámetros en Flask
Flask es un microframework muy popular en Python para desarrollar aplicaciones web de manera sencilla y rápida. Uno de los aspectos fundamentales en el desarrollo web es la gestión de rutas y parámetros, ya que permite definir cómo los usuarios acceden a diferentes recursos y cómo se pasan datos entre el cliente y el servidor.
En esta guía completa paso a paso aprenderás cómo manejar rutas y parámetros en Flask, abarcando desde lo más básico hasta aspectos más avanzados, todo con ejemplos prácticos y explicaciones detalladas.
¿Qué son las rutas en Flask?
En Flask, una ruta es una URL específica que responde a una función del servidor llamada vista. Al acceder a una ruta determinada, Flask ejecuta la función asociada y retorna una respuesta al usuario.
from flask import Flask
app = Flask(__name__)
@app.route(/)
def inicio():
return ¡Bienvenido a la página principal!
En el ejemplo anterior, la ruta /
responde con un mensaje de bienvenida cuando se accede a la página principal.
Cómo crear rutas básicas en Flask
Para definir rutas en Flask, se utiliza el decorador @app.route()
seguido de la función que responderá a dicha ruta. Es posible definir tantas rutas como necesite tu aplicación.
@app.route(/acerca)
def acerca():
return Acerca de nosotros
Ahora, si visitas http://localhost:5000/acerca
, verás el mensaje correspondiente.
Uso de métodos HTTP en rutas
Por defecto, las rutas en Flask solo aceptan el método GET. Si deseas que una ruta acepte otros métodos como POST, puedes especificarlo así:
@app.route(/contacto, methods=[GET, POST])
def contacto():
if request.method == POST:
return Formulario enviado
return Formulario de contacto
¿Cómo manejar parámetros en las rutas de Flask?
Muchas veces es necesario pasar información dinámica a través de la URL. Flask permite capturar partes variables de la URL como parámetros.
@app.route(/usuario/<nombre>)
def mostrar_usuario(nombre):
return fHola, {nombre}!
Si accedes a /usuario/Juan
, la función recibirá Juan como argumento y responderá con el mensaje personalizado.
Tipos de parámetros en rutas
Flask permite especificar el tipo de parámetro que se espera en la ruta, como int
, float
o path
.
@app.route(/post/<int:post_id>)
def mostrar_post(post_id):
return fPost número: {post_id}
Aquí, post_id solo aceptará valores enteros. Si intentas acceder a /post/abc
, Flask mostrará un error 404.
Parámetros opcionales y valores por defecto
Es posible definir parámetros opcionales en las rutas de Flask, asignando valores por defecto en la función de vista.
@app.route(/saludo/)
@app.route(/saludo/<nombre>)
def saludo(nombre=visitante):
return f¡Hola, {nombre}!
Si accedes a /saludo/
, se mostrará ¡Hola, visitante!. Si accedes a /saludo/Ana
, verás ¡Hola, Ana!.
¿Cómo trabajar con parámetros de consulta (query string) en Flask?
Además de los parámetros en la ruta, puedes recibir parámetros de consulta (query parameters), que se envían después del signo de interrogación en la URL, por ejemplo: /buscar?palabra=flask
.
Para acceder a ellos, utiliza request.args
:
from flask import request
@app.route(/buscar)
def buscar():
palabra = request.args.get(palabra, )
return fBuscando: {palabra}
Si visitas /buscar?palabra=flask
, la respuesta será Buscando: flask.
Parámetros múltiples en la query string
Puedes obtener varios parámetros de la consulta:
@app.route(/filtro)
def filtro():
categoria = request.args.get(categoria, todas)
orden = request.args.get(orden, asc)
return fFiltrando por {categoria}, orden: {orden}
Así, /filtro?categoria=tecnologia&orden=desc
retornará Filtrando por tecnologia, orden: desc.
Buenas prácticas al definir rutas y parámetros en Flask
- Utiliza nombres descriptivos para las rutas y los parámetros.
- Valida siempre los parámetros recibidos para evitar errores y vulnerabilidades.
- Evita rutas ambiguas que puedan causar conflictos en la resolución de URLs.
- Utiliza tipos de parámetros siempre que sea posible para mayor seguridad y claridad.
Resumen: ¿Cómo gestionar rutas y parámetros en Flask?
Como has visto, gestionar rutas y parámetros en Flask es un proceso sencillo pero fundamental para cualquier aplicación web. Puedes definir rutas estáticas y dinámicas, capturar parámetros de la URL y de la cadena de consulta, y controlar el flujo de tu aplicación de manera flexible.
Dominar el manejo de rutas y parámetros en Flask te permitirá crear aplicaciones más potentes y personalizadas, adaptadas a las necesidades de tus usuarios.
Ejemplo completo de aplicación Flask con rutas y parámetros
from flask import Flask, request
app = Flask(__name__)
@app.route(/)
def inicio():
return Página principal
@app.route(/usuario/<nombre>)
def usuario(nombre):
return fHola, {nombre}!
@app.route(/post/<int:post_id>)
def post(post_id):
return fViendo el post número {post_id}
@app.route(/buscar)
def buscar():
q = request.args.get(q, )
return fResultados para: {q}
if __name__ == __main__:
app.run(debug=True)
Con este ejemplo, ya puedes empezar a gestionar rutas y parámetros en Flask de manera eficiente.