В вашем шаблоне должен быть тег <img>
с атрибутом src
, который содержит URL-адрес, который обслуживается вашим приложением и доставляет данные для изображения.Например, предположим, что вы храните изображения в модели с именем Image:
class Image(db.Model):
filename = db.StringProperty() # The name of the uploaded image
mime_type = db.StringProperty() # The mime type.
content = db.BlobProperty() # The bytes of the image
def load(id):
# Load an entity from the database using the id. Left as an
# exercise...
def link_id_for(self):
"Returns an id that uniquely identifies the image"
return self.key().id()
В коде контроллера / обработчика запросов, который отображает страницу, содержащую изображение, вы должны передать идентификатор, возвращаемый link_id_for
к шаблону, и шаблон будет иметь ваш тег изображения, что-то вроде этого:
<img src="/images/show/{{image_id}}">
У вас будет обработчик запросов, который обрабатывает запросы на /images/show/id
.Вы должны использовать id , чтобы вывести сущность Image из хранилища данных и отправить его обратно в ответ, что-то вроде этого:
found_image = Image.load(id)
response.headers['Content-Type'] = str(found_image.mime_type)
response.out.write(found_image.content)
Очевидно, вам придется адаптироватьподробности кода в вашей текущей структуре приложения и соглашениях, но в этом суть: используйте тег img
с src
, который указывает на ваше приложение;ваше приложение включает в себя обработчик запроса, который доставляет байты и заголовок Content-Type
.