2010-08-27 27 views
8

Bu nedenle, yeni yüksek performanslı görüntü sunma olayı nedeniyle resim galerimi yeniden yazmaya karar verdim. Bu daha önce hiç kullanmadığım Blobstore'u kullanmak anlamına geliyordu. BlobKey'i modelimde saklamak için yeterince basit görünüyordu.Uygulama motoru ile DataStore'da BlobKey'i saklama

Modelde bir blobstorekey'e nasıl başvuruda bulunabilirim? Dize kullanmalı mıyım yoksa bilmediğim bazı özel mülk kullanmalı mıyım? Ben bu modeli

class Photo(db.Model): 
date = db.DateTimeProperty(auto_now_add=True) 
title = db.StringProperty() 
blobkey = db.StringProperty() 
photoalbum = db.ReferenceProperty(PhotoAlbum, collection_name='photos') 

var Ve bu hatayı alıyorum: Mülkiyet blobkey, ben app motoru deneyimsizim

Verilen bir BlobKey bir str veya unicode örneği, olmamalıdır ama bu ilk büyük duvar Henüz vurdum. Herhangi bir başarı göstermeden kapsamlı bir şekilde dolaşınız. Bunun yerine bir db.StringProperty ait

cevap

1

() Eğer db.blobstore.BlobReferenceProperty (Sanırım) kullanmak gerekir

Hala da bu şeyi anlamaya çalışıyorum, ama bazı fikirler yayınlamak istiyorsanız düşünce .

İşte Google'dan referans sayfaları: Benim için http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html

http://code.google.com/appengine/docs/python/datastore/typesandpropertyclasses.html#BlobReferenceProperty

+0

Ben İşçi Bayramı hafta sonu bu bölümünde üzerinde çalışmaya gidiyorum .. yani karım dizüstü bilgisayardan çıkmıyorsa (cumartesi günü evlenmek!). – Sologoub

11

aşağıdaki çalışır. Not sadece blobstore yerine sınıf blobstore.blobstore olduğunu unutmayın.

Modeli: özelliğini ayarlayın

from google.appengine.ext.blobstore import blobstore 

class Photo(db.Model): 
    imageblob = blobstore.BlobReferenceProperty() 

:

from google.appengine.api import images 
from google.appengine.api import blobstore 
from google.appengine.ext.webapp import blobstore_handlers 

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler): 
    def post(self): 
    upload_files = self.get_uploads('file') # 'file' is file upload field in the form 
    blob_info = upload_files[0] 
    entity = models.db.get(self.request.get('id')) 
    entity.imageblob = blob_info.key() 

mülkü al:

image_url = images.get_serving_url(str(photo.imageblob.key())) 
+0

Bu efendim için teşekkürler. Bunu deneyeceğim. –

İlgili konular