Adaptar el Mensaje NotFound

Problema

Cómo adaptar los mensajes NotFound y otros?

Solución

  1 # -*- coding: utf-8 -*-
  2 import web
  3         
  4 urls = (
  5     '/(.*)/$', 'hello'
  6 )   
  7 
  8 app = web.application(urls, globals())
  9 
 10 def notfound():
 11     return web.notfound("Lo sentimos, la página que buscas no se ha encontrado.")
 12 
 13     # You can use template result like below, either is ok:
 14     #return web.notfound(render.notfound())
 15     #return web.notfound(str(render.notfound()))
 16 
 17 app.notfound = notfound
 18 
 19 class hello:
 20     def GET(self, name):
 21         if not name: 
 22             name = 'World'
 23         return 'Hello, ' + name + '!'
 24         
 25 if __name__ == "__main__":
 26     app.run()


Y para devolver el 404 personalizada desde nuestro código, debemos hacer:

 19 class example:
 20     def GET(self):
 21         raise web.notfound()

Nuestro ejemplo puede terner el siguiente aspecto:

  1 # -*- coding: utf-8 -*-
  2 import web
  3         
  4 urls = (
  5     '/(.*)/$', 'hello'
  6 )   
  7 
  8 app = web.application(urls, globals())
  9 
 10 def notfound():
 11     return web.notfound("Lo sentimos, la página que buscas no se ha encontrado.")
 12 
 13     # You can use template result like below, either is ok:
 14     #return web.notfound(render.notfound())
 15     #return web.notfound(str(render.notfound()))
 16 
 17 app.notfound = notfound
 18 
 19 class example:
 20     def GET(self):
 21         raise web.notfound()
 22 
 23 class hello:        
 24     def GET(self, name):
 25         if not name: 
 26             name = 'World' 
 27         return 'Hello, ' + name + '!'
 28 
 29 if __name__ == "__main__":
 30     app.run()

Para el cual podemos provar con una URL válida y otra que no exista en nuestra tupla urls, por ejemplo:

http://127.0.0.1:8080/Mundoooooooo/
http://127.0.0.1:8080/Mundoooooooo/si
http://127.0.0.1:8080/Mundoooooooo

Del mismo modo podemos personalizar los mensaje internos de Error (InternalError).

 19 def internalerror():
 20     return web.internalerror("Grave, Error del servidor.")
 21 
 22 app.internalerror = internalerror

Podemo provocar un InternalError modificando nuestras urls:

  4 urls = (
  5     '/', 'hello'
  6 )

Nuestra aplicación de ejemplo podría tener el siguiente aspecto:

  1 # -*- coding: utf-8 -*-
  2 import web
  3 
  4 urls = (
  5     '/', 'hello'
  6 )
  7 
  8 app = web.application(urls, globals())
  9 
 10 def notfound():
 11     return web.notfound("Lo sentimos, la página que buscas no se ha encontrado.")
 12 
 13     # You can use template result like below, either is ok:
 14     #return web.notfound(render.notfound())
 15     #return web.notfound(str(render.notfound()))
 16 
 17 app.notfound = notfound
 18 
 19 def internalerror():
 20     return web.internalerror("Grave, Error del servidor.")
 21 
 22 app.internalerror = internalerror
 23 
 24 class example:
 25     def GET(self):
 26         raise web.notfound()
 27 
 28 class hello:
 29     def GET(self, name):
 30         if not name:
 31             name = 'World'
 32         return 'Hello, ' + name + '!'
 33 
 34 if __name__ == "__main__":
 35     app.run()

Y revisar la URL:

http://127.0.0.1:8080/

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s