Для извлечения изображения из blobstore я обычно делаю следующее, и это работает:
<img src="/image?blob_key={{ blob_key }}"></img>
Насколько я читал о fancybox и лично пробовал:
$("a[rel=photo_collections]").fancybox({
'transitionIn' : 'none',
'transitionOut' : 'none',
});
<a rel="photo_collections" href="/image/photo.png"> Photos </a>
<a rel="photo_collections" href="/image/photo2.png"> Photos </a>
Приведенная выше галерея изображений работает, если у меня есть изображения в папке.
Итак, мой вопрос: что если я хочу получить изображения из Blobstore, а не из папки?
Итак, я попробовал следующее, это не работает:
$("a[rel=photo_collections]").fancybox({
'transitionIn' : 'none',
'transitionOut' : 'none',
});
<a rel="photo_collections" href="/image/photo.png"> Photos </a>
<a rel="photo_collections" href="/image/photo2.png"> Photos </a>
// This part, the fancybox works but it doesn't display the image correctly. All it shows were some sort of binary data instead of image
<a rel="photo_collections" href="/image?blob_key={{ blob_key }}"
Следовательно, у меня есть два основных вопроса:
- Как решить вышеупомянутую проблему?
- Если я хочу сделать что-то вроде Google Plus / Facebook Photo Viewer, где при просмотре изображений пользователь может оставлять комментарии. Требуется ли для этого галерея изображений HTML, а не просто галерея изображений, поскольку мне нужно больше элементов управления формой HTML?
EDIT
Ниже приведен обработчик для обслуживания изображения, полученного из Blobstore:
class RemoteDisplayImageHandler(blobstore_handlers.BlobstoreDownloadHandler):
def get(self):
blob_key = self.request.GET.get('blob_key', None)
blob_info = blobstore.BlobInfo.get(blob_key)
logging.debug('blob_key=%s', blob_key)
logging.debug('blob_info=%s', blob_info)
if not blob_info:
raise Exception('Blob Key does not exist')
self.send_blob(blob_info)