【问题标题】:Displaying an image using jinja2 on GAE在 GAE 上使用 jinja2 显示图像
【发布时间】:2013-01-17 20:20:26
【问题描述】:

我有一个图像数据库。我想使用 jinja2 模板显示数据库中的所有图像。

我发送数据库对象如下:

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))

在 Default_tiles 中显示每个对象中每个图像的 jinja2 模板是:

<body>  
  {% for defaultTile in defaultTiles %}
    {{ defaultTile.image }}
  {% endfor %}
</body>

当它运行时,我得到以下错误日志:

文件“/Users/jamiefearon/Desktop/Development/My Programs/GAE 具有 css、javascript 和 images/index.html 的功能齐全的网站”,第 24 行,在顶级模板代码中 {{ defaultTile.image }} UnicodeDecodeError:“ascii”编解码器无法解码位置 0 中的字节 0x89:序数不在范围内(128)

我怀疑我对{{ defaultTile.image }} 行做错了

感谢大家的帮助。

【问题讨论】:

    标签: google-app-engine jinja2


    【解决方案1】:

    您不能只将二进制数据放入 html 并显示图像,您需要使用 IMG 元素显示图像。

    您需要使用处理程序提供图像或使用inline base64 data 显示图像。

    【讨论】:

    • 谢谢。您是否知道我可以查看的任何示例以更好地了解如何执行此操作?即如何在数据存储中显示数据库中的所有图像
    猜你喜欢
    • 2017-04-14
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多