阅读https://pypi.python.org/pypi/five.pt/2.2.1
To enable Chameleon, configure the package using ZCML:
<include package="five.pt" />
每个包或全局启用Chameleon模板吗?说明很少。
如果我想为特定包装启用Chameleon,那么它是否可能? (使迁移到Chameleon更容易)
答案 0 :(得分:1)
直接引用PyPI page for the package:
它使用Monkey-patching到现有API(特别是
TALInterpreter
和PageTemplate
类)。简单来说,修补的作用是替换TAL解释器类,并确保所谓的“烹饪”例程使用Chameleon解析器和编译器而不是zope.*
参考实现。
因此,当您加载five.pt
包时,常规页面模板代码会被修补以使用Chameleon模板,而不是在模板编译(编译)时。
这实际上排除了启用Chameleon并逐个打包禁用Chameleon的能力。一旦任何包使用<include package="five.pt" />
指令,就会加载five.pt
configure.zcml
文件并应用补丁。
那就是说,理论上它应该可以添加每个包启用或禁用回补丁;必须教授five.pt
Program
utility的__call__
和cook
方法如何检测模板适用的包,并决定RepeatDict
类和页面模板对象使用。