Может ли кто-нибудь проверить/исправить мой метод доступа к изображению, которое является частью класса ndb.Model?Извлечение изображения из Google App Engine ndb
Это мой MainPage обработчик:
class MainPage(webapp2.RequestHandler):
def get(self):
guestbook_name = self.request.get('guestbook_name',
DEFAULT_GUESTBOOK_NAME)
greetings_query = Greeting.query(
ancestor=guestbook_key(guestbook_name)).order(-Greeting.date)
greetings = greetings_query.fetch(10)
template_values = {
'greetings': greetings,
'guestbook_name': urllib.quote_plus(guestbook_name),
}
template = JINJA_ENVIRONMENT.get_template('index.html')
self.response.write(template.render(template_values))
Это мой index.html код шаблона:
{% for greeting in greetings %}
<div><img src="/img?key_id={{ greeting.key.id() }}" />
</div>
{% endfor %}
Это мой обработчик изображений:
class Image(webapp2.RequestHandler):
def get(self):
greeting = ndb.get(self.request.get('key_id'))
if greeting.avatar:
self.response.headers['Content-Type'] = 'image/png'
self.response.out.write(greeting.avatar)
self.response.write('it works')
else:
self.error(404)
self.response.out.write('No image')
Идея заключается в том, что Я сохраняю свое изображение в блобе в моей модели приветствия NDB. Затем я пытаюсь получить это изображение, заполнив основную страницу обработчиком MainPage, который вызывает мой обработчик изображения. Я передаю конкретный ключ доступа ndb через мой шаблон, а затем извлекаю ключ из шаблона в обработчике изображения. Затем я пытаюсь отобразить атрибут blob, получив запись ndb с помощью ключа. Вот след ошибка:
использования https://webapp-improved.appspot.com/ guide/request.html # get-data: self.request.GET ('key_id')) – voscausa