Displaying an image using jinja2 on GAE
我有一个图像数据库。我想使用jinja2模板显示数据库中的所有图像。
我发送数据库对象如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class Default_tiles(db.Model): name = db.StringProperty() image = db.BlobProperty(default=None) class MainPage(webapp2.RequestHandler): def get(self): # get all the default tiles in the database default_tiles_query = Default_tiles.all() defaultTiles = default_tiles_query.fetch(10) template_values = { 'defaultTiles': defaultTiles # contain all the defaut tiles to be displayed } template = jinja_environment.get_template('index.html') self.response.out.write(template.render(template_values)) |
在默认情况下,显示每个对象中每个图像的jinja2模板是:
1 2 3 4 5 | <body> {% for defaultTile in defaultTiles %} {{ defaultTile.image }} {% endfor %} </body> |
运行此命令时,我会得到以下错误日志:
文件"/users/jamiefearon/desktop/development/my programs/gae全功能网站,包含css、javascript和images/index.html",第24行,顶级模板代码123; defaultTile.image_unicodedecodeerror:"ascii"编解码器无法在位置0解码字节0x89:序号不在范围(128)内。
我怀疑我对
谢谢大家的帮助。
你不能只将二进制数据放入HTML并显示图像,你需要使用img元素来显示图像。
您需要使用处理程序服务您的图像,或者使用内联base64数据显示图像。