-5

(名前、パスワード、電子メール、電話番号)を含むユーザー登録を行い、Google App Engine データストアにも画像を含めようとしています。画像のアップロードとサイズ変更が面倒だっただけで、すべて正常に動作しています。しかし、私は今それを機能させました。

基本的に3つのハンドラーがあります

  • 登録ページ ハンドラー用の最初の 1 つ (情報のテストとユーザー ページへのリダイレクト)

"""登録ページからすべてのリクエストを取得し、データベースに保存"""

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

"""値が u_id の Cookie とハッシュを作成"""

self.redirect(/userpage)

  • 2 番目はユーザーページ ハンドラーです (登録ハンドラーで作成された 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)

  • 3 番目はイメージ ハンドラーです。
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 として文字列またはlong として使用するメソッドを使用します。

文字列または long として指定された ID。数字の 0 にすることはできません。

于 2012-05-21T13:51:01.213 に答える