Hello: I have been trying to learn how to save and retrieve an image from datastore with no success so far. I copied the code from the documentation and tried to adapt it to my script. I only see a broken image link and I don't see the blob written to datastore in datastore viewer.
My question at StackOverflow is here: http://stackoverflow.com/questions/4351375/how-to-use-images-python-api-correctly-to-display-an-avatar-with-user-comments Thank your for your help. This is my model: class User(db.Model): userEmail = db.StringProperty() userName = db.StringProperty() userLatestComment = db.StringProperty(multiline=True) userScore = db.IntegerProperty(default=0) avatar = db.BlobProperty() And this is the script: from model import User from model import Comment from model import Venue from google.appengine.api import users from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app from google.appengine.ext import db class MainPage(webapp.RequestHandler): def get(self): siteUser = users.get_current_user() greeting = None if siteUser: greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>)" % (siteUser.nickname(), users.create_logout_url("/"))) else: greeting = ("<a href=\"%s\">Sign in or register</a>" % users.create_login_url("/")) self.response.out.write(greeting) self.response.out.write(""" <form action="/avatar-save" enctype="multipart/form- data" method="post"> <div><label>Avatar:</label></div> <div><input type="file" name="img"/></div> </form> </body> </html>""") query = User.all() query.filter("userEmail =", "[email protected]") results = query.fetch(10) self.response.out.write("""<html><head><style> body {font-size: small; font-family: Verdana, Helvetica, sans-serif; }</style> </head><body><ol>""") for result in results: self.response.out.write("<li>") self.response.out.write("<b>%s</b> %s " % (result.userName, result.userLatestComment)) self.response.out.write("<div><img src='img?img_id=%s'></ img>" % result.key()) self.response.out.write("</li>") self.response.out.write("</ol></body></html>") class Image (webapp.RequestHandler): def get(self): greeting = db.get(self.request.get("img_id")) if greeting.avatar: self.response.headers['Content-Type'] = "image/png" self.response.out.write(greeting.avatar) else: self.response.out.write("No image") class AvatarSave(webapp.RequestHandler): def post(self): q = User.all() q.filter("userEmail =", "[email protected]") qTable = q.fetch(1) if qTable: for row in qTable: avatar = images.resize(self.request.get("img"), 32, 32) row.avatar = db.Blob(avatar) db.put(qTable) else: self.response.out.write("user not found") self.redirect('/') application = webapp.WSGIApplication( [('/', MainPage), ('/img', Image), ('/avatar-save', AvatarSave), ], debug=True) def main(): run_wsgi_app(application) if __name__ == "__main__": main() -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
