Metin alanları arasında bir resim yüklemek için bir öğe içeren bir formum var.
Blob'u blobstore'da saklamak ve ndb.BlobKeyProperty()
kullanarak modelime (ndb.Model
) başvurmak istiyorum.GAE Blobstore: blob'u diğer metin alanlarıyla birlikte yükle
upload_url = blobstore.create_upload_url('/upload')
upload_url
damla yüklemek için oluşturulan sayfa form eylemdir:
this link gösterilen yöntem bu şekilde oluşturulan bağlantıdan denir Bir yükleme işleyicisi (UploadHandler
) kullanır. Ancak, formum, UploadHandler
post yönteminde işlenmeyen diğer alanları içerir. Bu yöntem ben olan her sayfa için main.py
yeni işleyicisi tanımlamak zorunda olması dışında çalışır
class EditProfile(blobstore_handlers.BlobstoreUploadHandler, BaseHandler)
def get(self):
params['upload_url'] = blobstore.create_upload_url('/upload_blob1')
... fields ...
def post(self):
upload_blob = self.get_uploads()
blob_key = upload_blob[0].key()
value_field1 = self.request.POST.get('field1')
value_field2 = self.request.POST.get('field2')
value_field3 = self.request.POST.get('field3')
...
: buldum geçici çözüm benim BaseHandler gelen VE BlobstoreUploadHandler devralır benim form için bir işleyici yaratmaktı bir damla yüklenmesine:
app = webapp2.WSGIApplication([ ('/upload_blob1', handlers.EditProfile),
('/upload_blob2', handlers.EditBlob2Handler),
('/serve/([^/]+)?', handlers.ServeHandler) ],
debug=os.environ['SERVER_SOFTWARE'].startswith('Dev'), config=webapp2_config)
Soru: yükleme blob görevi gerçekleştirmek için farklı sayfalarından denir: I (UploadHandler
örneğin) tek yükleme işleyicisi nasıl kullanabileceğinizi? Bunun deneyimli bir GAE programcısı için çok basit olabileceğini biliyorum, ancak etrafta bir çözüm bulamadım.
Şimdiye kadar girdiğiniz her şey doğru. Bir blobun her ikisini de yüklemesi gereken iki ayrı formunuz varsa, iki ayrı işleme almaları gerekir. Tüm form alanları aynıysa, yalnızca aynı işleyiciyi kullanmak mantıklıdır. – dragonx
Hem "handlers.EditProfile" hem de "handlers.EditBlob2Handler" tarafından kullanılan yalnızca bir yükleme işleyicisi ('UploadHandler') kullanmak istiyorsam ne olur? Mümkün mü? Nasıl? –
İki işleyici için gönderilen formlar aynıysa ve iki işleyici aynıysa, o zaman her ikisini de aynı url'ye create_upload_url() için hedef olarak uygun URL'yi ileterek yönlendirebilirsiniz. İşleyiciler farklıysa ve farklı şeyler yaparsa, bu aptalca bir soru olur. – dragonx