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.

Índice()

    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

    Te has suscrito correctamente al boletín

    Se produjo un error al intentar enviar tu solicitud. Inténtalo de nuevo.

    Mi Diario Python will use the information you provide on this form to be in touch with you and to provide updates and marketing.