Images Python APIを使用してドキュメントを理解しようとしていますが、キーを取得してアバターを表示する方法について混乱しています。
ドキュメントによると、Image
ハンドラーは/img
パスから外れた画像を提供します。
Image
このハンドラーが何をするのか混乱しています。私はそれをどのように理解するかを以下にコメントします。正してください。ありがとう:
class Image (webapp.RequestHandler):
def get(self):
#get the key of the image "img_id" from datastore
#what is the value of "img_id"? Where does it come from?
#how does the app engine know to get what key for which image?
greeting = db.get(self.request.get("img_id"))
#what is greeting.avatar?
#is it img_id.avatar ?
#I assume "avatar" refers to the "avatar" property in the model
if greeting.avatar:
self.response.headers['Content-Type'] = "image/png"
#does this display the avatar?
#I thought the img tag displayed the avatar
self.response.out.write(greeting.avatar)
else:
self.error(404)
助けてくれて本当にありがとうございます。
更新(再:Gabi Purcaruによる回答)
明確な答えをありがとう。次のようなユーザーコメントを表示するクエリがあります。
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("</li>")
self.response.out.write("</ol></body></html>")
そのため、MainPageハンドラーから画像タグのある行をコピーします
self.response.out.write("<div><img src='img?img_id=%s'></img>" % greeting.key())
と変更
greeting.key()
に
result.key()
これで、ユーザーコメントの横にアバターが表示されるはずです。
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>")
result.key()
しかし、なぜ私が表示したい画像のキーなのかはっきりしていませんか?