以下在修改quickstart
基于 TurboGears 2.2.2 的项目时有效,配置为使用 Mako 模板系统。首先,我对以下内容进行了一些更改example/controllers/root.py
:
# …
from tg import config
import os
import base64
class RootController(BaseController):
# …
def _file_to_base64(self, path):
with open(path, 'r') as stream:
image_data = base64.b64encode(stream.read())
return 'data:image/{0};base64,{1}' \
.format(path.rsplit('.', 1)[-1].lower(), image_data)
@expose('example.templates.index')
def index(self):
"""Handle the front-page."""
filename = os.path.join(config['paths']['static_files'],
'images', 'turbogears_logo.png')
return dict(page='index', image_data=self._file_to_base64(filename))
那么make模板中的代码就变成了:
<img src="${image_data}" />
上面的代码是使用 Python 2.7.3 测试的。我不知道您的数据库图像格式或编码与从普通图像文件加载的数据有何不同。