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.
Deja una respuesta
Muchas gracias luis, me ayudaste a comprender como usar redirect().
Un saludo.