Google App Engine (Python): Как указать столбец в сущности, используя аргумент URL? - PullRequest
0 голосов
/ 14 января 2011

Я пытаюсь сделать класс отображения изображений общего назначения, который получает два параметра, Ключ и «Информация о расположении столбца в объекте» от URL и вернуть и отобразить указанное изображение, доставленное из BLOB-объекта. Если вы знаете, что я делаю неправильно, пожалуйста, дайте мне подсказку.

У меня есть "элемент" хранилища данных, как показано ниже,

Ключ | image_index | изображение1 | изображение2 | image3 |

и я запрашиваю изображение с URL, как показано ниже,

http://stackoverwlow.com/image/{key}/{image_N}

Я сделал обработчик URL в основном как показано ниже,

def main():
 application = webapp.WSGIApplication(
        [('/', MainPage),
  ('/image/([^/]+)/([^/]+)', imageDisplay),
  ], debug=True)
 wsgiref.handlers.CGIHandler().run(application)

и

Я создал класс imageDisplay, как показано ниже,

from google.appengine.ext import db
from google.appengine.ext import webapp

class imageDisplay(webapp.RequestHandler):

    def get(self, _key, _size):
        image = db.get(_key)
        self.response.headers['Content-Type'] = 'image/jpg'
        self.response.out.write(image._size)

Но, если я попробую этот код, он вернет следующую ошибку,

глобальное имя 'image_size' не определено

Если я укажу, какое изображение в сущности должно отображаться, оно работает. Итак, данные есть.

self.response.out.write(image.image3)

У меня вопрос, как указать "_size" из полученного объекта "image"?

Заранее спасибо.

С наилучшими пожеланиями

1 Ответ

0 голосов
/ 14 января 2011

Вам необходимо получить атрибут программно, например, так:

self.response.out.write(getattr(image, size))

Поскольку вы обращаетесь к своим значениям как к массиву, вам, вероятно, следует просто использовать один из них: используйте db.ListProperty (db.Blob), вместо этого!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...