Ver índice de contenidos del libro

3.5. Errores 404

En las URLconf anteriores, hemos definido un solo patrón URL: el que maneja la petición para la URL /time. ¿Qué pasaría si se solicita una URL diferente?

Para averiguarlo, prueba ejecutar el servidor de desarrollo Django e intenta acceder a una página Web como http://127.0.0.1:8000/hello/ o http://127.0.0.1:8000/does-not-exist/, o mejor como http://127.0.0.1:8000/ (la "raíz" del sitio). Deberías ver el mensaje "Page not found" (ver la Figura 3-2). (Es linda, ¿no? A la gente de Django seguro le gustan los colores pasteles). Django muestra este mensaje porque solicitaste una URL que no está definida en tu URLconf.

Captura de pantalla de la página 404 de Django.

Figura 3.2 Captura de pantalla de la página 404 de Django.

La utilidad de esta página va más allá del mensaje básico de error 404; nos dice también, qué URLconf utilizó Django y todos los patrones de esa URLconf. Con esa información, tendríamos que ser capaces de establecer porqué la URL solicitada lanzó un error 404.

Naturalmente, esta es información importante sólo destinada a ti, el administrador Web. Si esto fuera un sitio en producción alojado en Internet, no quisiéramos mostrar esta información al público. Por esta razón, la página "Page not found" sólo se muestra si nuestro proyecto en Django está en modo de depuración (debug mode). Explicaremos cómo desactivar este modo más adelante. Por ahora, sólo diremos que todos los proyectos están en modo de depuración cuando los creamos, y si el proyecto no lo estuviese, se retornaría una respuesta diferente.