python的模板引擎抽象层
collective.templateengines的Python项目详细描述
内容
templateengines是python的模板引擎抽象层。 它定义了用于与各种python模板引擎通信的通用zope接口。 以获得更高的代码重用价值
这个包还在开发中欢迎大家发表意见。
Features
collective.templateengines帮助您实现
- 简单,可插拔,模板语言切换。只编写一次模板标记代码,并在所有模板引擎中使用它 使用抽象标签插件
- 从模板引擎依赖项中清除代码库
- 跨模板引擎的通用错误和警告报告机制
- 来自PyPi存储库的EGG部署和轻松安装支持
- 使用标准Zope interfaces包定义的接口
- Django模板语言、Cheetah和Jinja2的后端
- 单元测试
Motivation
所有的模板引擎都有其缺点。迟早你会想尝试另一个引擎, 或者其他人希望在项目中使用其他模板引擎。这个包裹 旨在尽可能平稳地过渡。
Installation
- 安装collective.templateengines egg
- 安装以下任何模板引擎蛋:django、jinja2、cheetah
Usage
请看一下collective.easytemplate包如何支持交换 在模板引擎和它们的注册标记之间
下面的示例演示如何通过一行更改在django和cheetah模板引擎之间切换。 当然,模板本身需要重构。
猎豹:
from collective.templateengines.backends import cheetah engine = cheetah.Engine() context = DictionaryContext({"foo":"bar"}) template, syntax_errors = engine.loadString("Show variable $foo", False) result, evaluation_errors = template.evaluate(context)
Django公司:
from collective.templateengines.backends import djangotemplates engine = djangotemplates.Engine() context = DictionaryContext({"foo":"bar"}) template, syntax_errors = engine.loadString("Show variable {{ foo }}", False) result, evaluation_errors = template.evaluate(context)
Problems
- Cheetah架构缺少单独的公开编译和评估阶段
- cheetah默认情况下向模板公开完整的python名称空间,因此很难保护它
- 猎豹不能遍历Zope函数或属性
Changelog
0.3.5 (2013-05-07)
- plone 4.3的首次导入 [范希姆]
0.3.2 - 0.3.4
- 修复了上下文或HTTP请求为 不可用,或者在plone模板[miohtama]中是“特殊的”
- 修复了与LinguaPlone[miohtama]的兼容性问题
0.3.1 - 0.3.2
- 修复了原型访问器的Unicode问题
- 文档清理
0.3.0 - 0.3.1
- 修复了plone.py中原型模式字段有问题的问题
0.1.1 - 0.3.0
- 重大返工
0.1 - 0.1.1
-
固定PYPI部署问题< /LI>
0.1
- 初始版本