要将新的模板语言添加到repoze.bfg,我需要实现什么?框架会给我的插件发送绝对路径还是包相对路径,还是两者都要看情况?
发布于 2009-12-19 00:14:33
http://svn.repoze.org/repoze.bfg.jinja2/trunk/repoze/bfg/jinja2/上的包为BFG提供了附加的Jinja2绑定。基本上,您确实创建了一个这样的包,然后允许人们将其连接到他们的系统中。
有两个级别的集成。第一个只是一个导入级的集成,它允许人们做一些事情,比如:
从my.template.system导入render_template_to_response
def aview(request):返回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,‘ZCML’)”在他们的配置中添加这个渲染器(必须),或者通过在他们的ZCML中包含您的包附带的.myt文件。
https://stackoverflow.com/questions/1926199
复制相似问题