Я пытаюсь понять документацию Используя Изображения 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)
Большое спасибо за вашу помощь.
ОБНОВЛЕНИЕ (re: answer by 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()
является ключом изображения, которое я хочу отобразить?