Olduğu gibi veritabanında görüntüyü saklamaz modeliniz - bunun yerine, veritabanında depolanan yeni bir dosya adıyla, dosya sistemi üzerinde görüntüyü depolar (içinde 'resim' alanı). Eğer veritabanında resmin kendisini saklamak istiyorsanız, aşağıdaki kullanın:
db.define_table('images',
Field('picture', 'upload', uploadfield='picture_file')
Field('picture_file', 'blob'))
Eğer dosya sistemi üzerinde veya veritabanında görüntüleri depolamak olsun, bunları almak için aynı yöntemi kullanabilirsiniz. Sadece böyle bir şey yapmak
def download():
return response.download(request, db)
bir görüntü almak için:: 'hoş geldiniz' iskele uygulaması default.py
denetleyicisi aşağıdaki download()
eylemi içermektedir picture_name
'picture
saklanan değeri olan
<img src="{{=URL('default', 'download', args=picture_name)}}" />
'almak istediğiniz belirli görüntü için' images
'alanının tablosu.
Daha fazla ayrıntı için bkz. here ve here.
Daha fazla yardıma ihtiyacınız varsa, mailing list numaralı telefonu sormayı deneyin. kontrolörleri ise
db.define_table('images',Field('picture','upload'))
:
def somefunction():
pic = db(db.images).select().first().picture #select first picture
return dict(pic=pic)
Ve varsayılan modellerde
: Eğer dosya olarak resimlerini yükleme web2py varsayılan yolu kullanırsanız
Bilgi için Thx ... hayır demek gerçekten thx ... – Florin
Merhaba Anthony, Anahtar/Değer Nosql deposunda "blob" nasıl kaydedebilirim? Ayrıntılar istemiyorum, sadece yapmanın bir yolu. Şimdiden teşekkürler! – Locke
DAL'i kullanmak istersem, desteklenen tek anahtar/değer deposunun Google App Engine veri deposu olduğuna inanıyorum ve bu durumda, DAL dosyaları otomatik olarak veri deposunda saklar (açık bir şekilde oluşturmak zorunda bile kalmazsınız). ayrı blob alanını veya yükleme alanı argümanını belirtin).DAL ayrıca MongoDB ve CouchDB için kısmi desteğe sahiptir, ancak bunlar belge veri tabanlarıdır ve DAL'in dosyaları depolamayı destekleyip desteklemediğinden emin değilim. – Anthony