2012-02-09 18 views
6

En mi aplicación Frasco, puedo tener un controlador 404 de esta manera:¿No configuro correctamente mi controlador Flask 404?

@app.errorhandler(404) 
def page_not_found(e): 
    return render_template('404.html'), 404 

Sin embargo, cuando un usuario va a una URL no reconocida, el sistema da un error interno del servidor en lugar de hacer mi plantilla 404. ¿Me estoy perdiendo de algo?

+1

¿Creó la plantilla '404.html'? De cualquier manera, publique el seguimiento de pila para su error. Habilite el modo de depuración o inicie sesión para su aplicación, o simplemente revise la consola si está usando el servidor de desarrollo incorporado. –

+0

Mi página de error no funcionó hasta que devolvió una cadena como 'error 404'. Luego, codigo 'render_template' y funciono bien. No sé la razón para hacerlo funcionar, pero puedes intentarlo. – jaloplo

Respuesta

7

El error del servidor interno es un error HTTP 500 en lugar de 404 y no ha agregado el controlador de error para ello. Esto ocurre cuando el servidor no puede cumplir con la solicitud del cliente correctamente. Para añadir un mensaje de gracia cuando se produjo dicho error, se puede añadir un controladorErrores como 404.

@app.errorhandler(500) 
def exception_handler(e): 
    return render_template('500.html'), 500 
0

Esto también ocurrirá si tiene depuración establece en true. Intente configurar la depuración en falso y vea si su 404 personalizada aparece entonces.

Cuestiones relacionadas