¿Cómo creo una página 404?

Mi aplicación detecta todas las solicitudes de URL con un @app.route, pero de vez en cuando encuentro una URL incorrecta para la que no tengo un archivo jinja coincidente (pero sí coincide con un URL existente @app.route). Así que quiero redirigir dichas solicitudes a una página 404 para esa URL incorrecta.

Cómo discriminar entre "existe un archivo jinja" y "no existe un archivo jinja" antes de regresar render_template()?

preguntado el 12 de junio de 12 a las 10:06

1 Respuestas

Jinja lanzará una excepción si no se encuentra la plantilla: TemplateNotFound

Así que en lugar de:

def myview():
    return render_template(...)

podrías hacer algo como esto:

def myview():
    try:
        return render_template(...)
    except TemplateNotFound:
        abort(404)

Y luego maneje el error 404 con una página de error personalizada como se explica en el Documentación del matraz. No olvides importar abort del flask y TemplateNotFound del jinja2

Respondido el 12 de junio de 12 a las 11:06

yahoo! tienes razón render_template() realmente devolvió una excepción si no se encuentra el archivo jinja. Funciona. gracias por tu genial respuesta. - hof0w

Agregue a su respuesta el siguiente código, por favor. 'desde el aborto de la importación del matraz' - alexey_efimov

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.