Buscar uma imagem ao GridFS do MongoDB

24 views
Skip to first unread message

Hélio Miranda

unread,
May 14, 2013, 8:05:12 AM5/14/13
to django...@googlegroups.com
Oi.

Na minha aplicação estou a colocar imagens no GridFS do MongoDB.
Manualmente consigo ir buscar a imagem ao GridFS desta forma:

my_painting = Painting.objects(id='51921dee8774a71844db90c7').first()
print (my_painting.photo.read()).encode("base64")

E ele imprime a imagem em base64.

Agora como é que consigo por isso numa view, para depois enviar para o browser?

Andrews Medina

unread,
May 14, 2013, 10:30:47 AM5/14/13
to django...@googlegroups.com
Olá,

há várias formas de fazer isso. Uma delas é fazer uma view que retorne
a imagem (com o 'Content-type: image/jpeg') por exemplo.

Valeu!

--
Andrews Medina
www.andrewsmedina.com

Hélio Miranda

unread,
May 14, 2013, 11:02:52 AM5/14/13
to django...@googlegroups.com
Podes dar um exemplo?

Eu tenho esta view:
def view(request):
    if request.method == 'POST':
        my_painting = Movie.objects(MovieTitle=Avatar).first()
        foto = (my_painting.MovieCover.read()).encode("base64")
        
    return render_to_response('view.html', {},
                              context_instance=RequestContext(request))

Como é que posso utilizar aqui?
Eu sou novo a trabalhar com Django...

Arthur Furlan

unread,
May 14, 2013, 12:39:33 PM5/14/13
to django...@googlegroups.com
Você poderia fazer da seguinte forma:


def mongodb_image(request):
    image = Painting.objects(id='51921dee8774a71844db90c7')
    return HttpResponse(image.read(), content_type='image/jpeg')


E o ideal seria você passar o id via URL ao invés de deixar ela hardcoded na view.


2013/5/14 Hélio Miranda <heli...@gmail.com>

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Django Brasil" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para django-brasi...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--
Atenciosamente,

Arthur Furlan (arthurfurlan)
afu...@afurlan.org
GPG KeyID: 0x27D81084

Hélio Miranda

unread,
May 14, 2013, 12:50:16 PM5/14/13
to django...@googlegroups.com
Sim, o id vai ser passado no url...isto era apenas um teste.

Muito obrigado pela ajuda :)
Reply all
Reply to author
Forward
0 new messages