2010-11-26 29 views
4

J'ai écrit quelques codes.Comment charger l'image Blobproperty dans Google App Engine?

Je pourrais enregistrer l'image dans BobProperty.

Mais je ne peux pas charger l'image dans la page HTML ...

code source:

Produit de classe (db.Model):

 image = db.BlobProperty() 
      ... 

class add:

productImage = self.request.get('image') 

    product.image = db.Blob(productImage) 

    product.put() 

mais j'ai écrit {{product.image}} en code html. Mais il y avait comme 袀 ( (:( ( What ( > ̢ ( > Y K ׏

Que dois-je faire si je veux charger l'image à partir du magasin de données ?

Répondre

5

J'utilise une vue auxiliaire:

def serve_image(request, image): 
    if image == "None": 
     image = "" 

    response = HttpResponse(image) 
    response['Content-Type'] = "image/png" 
    response['Cache-Control'] = "max-age=7200" 
    return response 

et dans le modèle:

def get_image_path(self): 
    # This returns the url of serve_image, with the argument of image's pk. 
    # Something like /main/serve_image/1231234dfg22; this url will return a 
    # response image with the blob 
    return reverse("main.views.serve_image", args=[str(self.pk)]) 

et il suffit d'utiliser à la place {{ model.get_image_path }}

(ce qui est django-nonrel, mais je suppose que vous pourriez comprendre ce qu'il fait)

En outre, il y a un poste here à ce sujet. Tu devrais y jeter un coup d'oeil.