-5

我已经进行了用户注册,其中包括(姓名、密码、电子邮件、电话号码),现在尝试将图像也包含在 Google App 引擎数据存储中。一切正常,只是图像上传和调整大小很麻烦。但是,我现在已经让它工作了。

基本上有三个处理程序

  • 第一个用于注册页面处理程序(信息测试和重定向到用户页面)

"""从注册页面获取所有请求并存储在数据库中"""

userinfo.put()
u_id = userinfo.key().id()

"""创建cookie和哈希值是u_id"""

self.redirect(/userpage)

  • 其次是用户页面处理程序(验证在注册处理程序中创建的 cookie,如果哈希 cookie 有效,则重定向到用户页面,否则再次重定向到注册页面)
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}}" />

我已经解决了这个问题,进行了修订,以便更清楚地了解之前对我的问题投反对票的人。

4

2 回答 2

1

user_key = user_id.key()

但是为什么你的头在旋转?你实际上想要完成什么?

于 2012-05-21T13:24:53.653 回答
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

正如您在文档中所读到的,当您想创建一个对象 db.Key 时,您可以使用该方法Key.from_path(kind, id_or_name, parent=none, namespace=None, **kwds)用作 ID 字符串长字符串的方法。

id,指定为字符串或长整数。它不能是数字 0。

于 2012-05-21T13:51:01.213 回答