¿Cómo creo una página 404?
Frecuentes
Visto 9,854 veces
7
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()
?
1 Respuestas
17
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
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas python flask jinja2 or haz tu propia pregunta.
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