Pomocí Google Cloud Datastore a AJAX (kuličky) -python

hlasů
0

Ahoj Mám nějaké obrázky uložené jako BlobProperty ve službě Google Cloud Datastore. Snažím se načíst tyto obrázky přes Ajax do mé šablony. Pro např: - uživatel má image a jméno. Nyní image a jméno prostor dostane naplněna přes AJAX si zavolat na server. Nejsem pochopení toho, jak jsem poslat tyto obrázky ke klientovi, JSON zvyklý podporovat binární data. Nicméně googling kolem mi říká, že něco s názvem base 64. (mám to všechno úplně nové, tak ať mi přiznat, že jsem noob).

Je to jediný způsob, jak řešit tento problém, nebo je tam nějaký jiný lepší způsob.

Položena 14/11/2010 v 13:40
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

Toto vlákno naznačuje, že pokud jste právě vytvořit grafický prvek, nastavte její src, a přidat ji do vaší stránky pomocí JavaScriptu, prohlížeč se bude starat o vytváření HTTP požadavek na obrázku:

http://bytes.com/topic/javascript/answers/472046-using-ajax-xmlhttprequest-load-images

Pokud si chcete udělat s ‚čisté‘ technologie AJAX, pak base64 je asi nejlepší věc: je to způsob kódování binární data (jako obrazy) jako text, takže můžete odeslat jako dlouhý řetězec v JSON.

Odpovězeno 14/11/2010 v 13:57
zdroj uživatelem

hlasů
0

To je, jak to dělám, je to v baňce, ale přesto je to python tímto způsobem, můžete vytvořit rutinu požadavku pro zobrazení obrázků.

Takže vše, co je třeba udělat, aby se obraz přes Ajax se dostává obraz id musí být doručena. Je to jednodušší a můžete manipulovat velikostí i za běhu

from flask import request

from google.appengine.api import taskqueue, images, mail
from google.appengine.ext import db

    @app.route('/image/<img_id>')
    def imgshow(img_id):
      imageuse = Image.all().filter("image_id =", img_id).get()
      if imageuse:
        response = Response(response=imageuse.content)
        #you can use any type over here
        response.headers['Content-Type']='image/png'
        return response
      else:
        return

To je to, co mám dělat, abych manipulovat velikostí

@app.route('/thumb/<img_id>')
def thumbshow(img_id):
  imageuse = Image.all().filter("image_id =", img_id).get()
  if imageuse:
    thbimg = images.resize(imageuse.content, 80)
    response = Response(thbimg)
    response.headers['Content-Type']='image/png'
    return response
  else:
    return

doufám, že pomůže

Odpovězeno 04/01/2012 v 08:13
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more