Redirecciones y Errores con Flask

Hola amigos de Internet. Mi nombre es Luis, y les doy la bienvenida a Mi Diario Python.
En el articulo veremos dos cosas fundamentales en el desarrollo web. La redirección y los errores. Te mostrare lo fácil que es manejar estos dos aspectos utilizando Flask.
Prepárate una buena taza de café, y comencemos.

Redirección

Para redirigir a un usuario de una pagina a otra en Flask utilizaremos el método redirect(). Es muy fácil de utilizar. Solo debemos llamar al método redirect() y darle como argumento la pagina a la cual queremos redirigir al usuario.
from flask import Flask, redirect

app = Flask(__name__)

login_user = False

@app.route("/productos")
def index():
 if login_user == False:
  return redirect("/login")

@app.route("/login")
def login():
 return "<h1>Debes iniciar sesión para ver la lista de productos</h1>"

if __name__ == '__main__':
 app.run(debug=True)
Como pueden observar, es muy sencillo. He creado un pequeño ejemplo el cual si la variable login_user es igual a False, el usuario sea redirigido a http://localhost:5000/login.

Errores

El manejo de errores con Flask es muy sencillo. Y no necesitamos importar métodos.
Lo que haré sera crea una plantilla la cual tendrá un mensaje: Pagina no encontrada. que se le mostrara al usuario si intenta solicitar un recurso que no existe. Para ello se utiliza el error 404.
A todos nos ha salido un error 404 en nuestras vidas. El error 404 nos indica que el recurso que intentamos solicitar, no existe o no ha sido encontrado. Usualmente nos ocurre cuando ingresamos una URL con las rutas mal escritos, o cuan el recurso se ha movido a otra carpeta.
Veamos como manejar un erro 404 con Flask:
from flask import Flask, render_template

app = Flask(__name__)

@app.errorhandler(404)
def page_not_found(error):
 return render_template("pagina_no_encontrada.html"), 404
Muy bien. Como puedes observar, en vez de utilizar un route, utilizamos errorhandler. Esto le indica a Flask que la función page_not_found es un manejador de errores. Entre paréntesis hemos colocado el error, por el cual la función actuara, en este caso 404. Otra cosa a destacar es el 404 al final de render_template. Esto es muy importante ingresarlo luego de una coma.
Ahora, si intentamos ingresar a una ruta inexistente de nuestra aplicación, veamos el siguiente resultado:

Excelente, lo hemos hecho muy bien.
¿Alguna duda? ¿Alguna sugerencia? Déjanos tu comentario, y con mucho gusto te responderemos.
Sin más nada que decir, mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes :D.
  1. Gregory Vicent dice:

    Muchas gracias luis, me ayudaste a comprender como usar redirect().

    Un saludo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir
White Monkey