I am trying to make general purpose image display class which
receives two parameters,
Key, and “Column location info in entity”
from URL and return and display specified image delivered from blob.
If you know what I am doing wrong, please give me a hint.
I have datastore “item” like below,
Key | image_index | image1 | image2 | image3 |
and I am requesting image with the URL like below,
http://stackoverwlow.com/image/{key}/{image_N}
I made url handler in the main like below,
def main():
application = webapp.WSGIApplication(
[('/', MainPage),
('/image/([^/]+)/([^/]+)', imageDisplay),
], debug=True)
wsgiref.handlers.CGIHandler().run(application)
and
I made imageDisplay class like below,
from google.appengine.ext import db
from google.appengine.ext import webapp
class imageDisplay(webapp.RequestHandler):
def get(self, _key, _size):
image = db.get(_key)
self.response.headers['Content-Type'] = 'image/jpg'
self.response.out.write(image._size)
But, if I try this code, it will return following error,
global name ‘image_size’ is not defined
If I specify which image in the entity should be displayed, it works.
So, the data is there.
self.response.out.write(image.image3)
My question is, how to specify “_size” from obtained entity “image”?
Thank you in advance.
With best regards
You need to fetch the attribute programmatically, like this:
Since you’re addressing your values like an array, you should probably just use one, though: use a db.ListProperty(db.Blob), instead!