我想在我的 Pyramid 应用程序中使用 pystache 提供的基于类的 View ,但我不完全确定如何将两者正确集成。我读过 this已经,但它没有谈论使用基于类的 View 。
如果我想使用基于类的 View ,我该如何为 pystache 创建一个新的渲染器?有人可以帮我吗?
另外,虽然我已经知道 mustache 是如何工作的,但我似乎找不到关于 python 实现 (pystache) 的太多信息。有人可以在这里为我指明正确的方向吗?
实现一个MustacheRendererFactory
:
class MustacheRendererFactory(object):
def __init__(self, info):
self.info = info
def __call__(self, value, system):
package, filename = resolve_asset_spec(self.info.name)
template = os.path.join(package_path(self.info.package), filename)
template_fh = open(template)
template_stream = template_fh.read()
template_fh.close()
return pystache.render(template_stream, value)
更新您的配置器设置,可能在 __init__.py
中:
def main(global_config, **settings):
config = Configurator(settings=settings)
# ...
# Use Mustache renderer
config.add_renderer(name='.mustache',
factory='myapp.mustacherenderer.MustacheRendererFactory')
# ...
在您的 View 中使用:
@view_config(route_name='myview', renderer='myapp:templates/notes.mustache')
def my_view(request):
# ...
我是一名优秀的程序员,十分优秀!