我已经进行了用户注册,其中包括(姓名,密码,电子邮件,电话号码),现在尝试在Google App引擎数据存储区中包含图片。一切都很好,只是图像上传和调整大小很麻烦。但是,我现在已经开始工作了。
基本上有三个处理程序
“”“从注册页面获取所有请求并存储在数据库中”“
userinfo.put() u_id = userinfo.key().id()
“”“创建cookie和哈希值,其中值为u_id”“”
self.redirect(/userpage)
user_id = Users.get_by_id(u_id) user_key = ? # how can I get key of user_id
self.render("user.html", user =user_id.user, avatar = user_id.avatar)
class disp_image(webapp.RequestHandler): def get(self): key = self.request.get('key') image = Users.get(key) self.response.headers['Content-Type'] = "image/png" return self.response.out.write(image.avatar)
模板
<img src="/disp?key={{avatar}}" />
我已经解决了这个问题,我们进行了修改,以便更清楚地说明谁先前对我的问题进行了投票。
答案 0 :(得分:1)
user_key = user_id.key()
但为什么你的头在旋转?你到底想要完成什么?
答案 1 :(得分:0)
我想你的问题是要理解,key,key_name和id?您必须仔细阅读课程db.Key
https://developers.google.com/appengine/docs/python/datastore/keyclass
key = userinfo.key() # Returns an instance of the class `db.Key`
if key.id(): # That means the key use a numeric ID
id = key.id()
else: # That means you can not have an ID in numeric and in string
key_name = key.name() # That means the key use a string ID
正如您可以在doc上阅读的那样,当您想要创建一个对象db.Key时,您可以使用方法Key.from_path(kind, id_or_name, parent=none, namespace=None, **kwds)
,此方法使用字符串或作为ID。
id,指定为字符串或long。它不能是数字0。