0

我需要实现什么来向 repoze.bfg 添加新的模板语言?框架会发送我的插件绝对路径还是包相对路径,或者两者都取决于?

4

1 回答 1

2

http://svn.repoze.org/repoze.bfg.jinja2/trunk/repoze/bfg/jinja2/上的包为 BFG 提供了附加的 Jinja2 绑定。基本上,您确实创建了一个这样的包,然后允许人们将其连接到他们的系统中。

有两个级别的集成。第一个只是一个导入级别的集成,它允许人们执行以下操作:

从 my.template.system 导入 render_template_to_response

def aview(request): return render_template_to_response('some/relative/path.myt')

在 repoze.bfg.jina2 中使用 render_template* 方法,将它们替换为您喜欢的模板系统的类似方法会给您这个。

另一个集成级别是允许您的模板系统用作“渲染器”。例如,这允许:

@bfg_view(renderer="some/relative/path.myt") def aview(request): return {'a':1}

为此,模仿 repoze.bfg.jinja2 中的“renderer_factory”函数,然后让人们通过“config.add_renderer(renderer_factory, '.myt')”(必须)或通过包含 ZCML 在他们的配置中添加这个渲染器在他们的 ZCML 中随您的包一起发送的文件。

于 2009-12-18T16:14:33.067 回答