Consulta

6 views
Skip to first unread message

Marcos Rodríguez

unread,
Feb 21, 2012, 1:57:01 PM2/21/12
to web2py-...@googlegroups.com
Hice un m�dulo en python, y lo coloqu� en Modules. El m�dulo lo que hace
es con pydot, devolver una imagen.
Como hago para que el web2py me la muestre en la misma ventana? O para
que la muestre en otra ventana?

Saludos, Marcos

Alan Etkin

unread,
Feb 22, 2012, 7:06:46 AM2/22/12
to web2py-usuarios
Una forma es almacenar la imagen en el sistema y devolver una vista
con la ruta a la imagen en una etiqueta IMG.

Otra forma sería devolver el contenido de la imágen en forma dinámica,
con una vista especial (por ejemplo views/.../imagen.jpg)
Tendrías que establecer el tipo MIME apropiado en response.headers y
procurar que la cadena devuelta con la información de la imagen tenga
la codificación adecuada. El primer caso es mucho más sencillo en mi
opinión, pero necesitás almacenar la información en un archivo del
servidor.

Para que la imagen se vea en otra ventana tenés que usar un comando
javascript con la url de la imagen (creo que la función es
window.open(...))

Martín Mulone

unread,
Feb 23, 2012, 5:46:59 AM2/23/12
to web2py-...@googlegroups.com
Marcos, lo primero que tenés que hacer es un controlador el cual va a devolver la imagen. Algo así:

miapp/controllers/default.py

def imagen():

   id = request.args[0]
   data = funcion_que_devuelva_imagen_io(id)
   response.body = data
   response.headers['Content-Type'] = 'image/jpeg'
   filename = 'imagen_%s.jpg' % id 
   response.headers['Content-Disposition'] = 'attachment; filename="%s"' %\
                                 (filename)
   return response.body.getvalue()


Seguramente el código no anda pero es para que te des una idea, capaz que entenderíamos más si vieramos más código de como se genera la imagen.

Con esto tendrías que poder poner en el navegador:

http://...../default/imagen/5

y tendría que desplegarte la imagen. Lo segundo es más fácil como te dice alan.
Reply all
Reply to author
Forward
0 new messages