Python的模板引擎抽象层
项目描述
collective.templateengines是Python的模板引擎抽象层。它定义了通用的Zope接口,用于与各种Python模板引擎通信,以实现更高的代码重用价值。
此包仍在积极开发中。所有贡献和评论都受到欢迎。
功能
collective.templateengines可以帮助你实现
简单、可插拔的模板语言切换。只需编写一次模板标签代码,然后使用抽象的标签插件在所有模板引擎中使用它
清除你的代码库中的模板引擎依赖关系
跨模板引擎的通用错误和警告报告机制
支持从PyPi存储库进行EGG部署和easy_install
使用标准 Zope 接口 包定义的接口
Django 模板语言、Cheetah 和 Jinja2 的后端
单元测试
动机
所有模板引擎都有其不足之处。迟早你想要尝试另一个引擎,或者其他人想在你的项目中使用另一个模板引擎。本包旨在使这种过渡尽可能平滑。
安装
安装 collective.templateengines egg
安装以下任何模板引擎 egg:Django、Jinja2、Cheetah
用法
请查看 collective.easytemplate 包,了解如何支持在模板引擎之间切换以及为它们注册标签。
以下示例展示了如何通过一行更改在 Django 和 Cheetah 模板引擎之间切换。当然,模板本身也需要重构。
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)
问题
Cheetah 架构缺乏独立的公开编译和评估阶段
Cheetah 默认将完整的 Python 命名空间暴露给模板,这使得保护它变得困难
Cheetah 无法遍历 Zope 函数或属性
示例
Python Template Engines 用于
Easy Template 产品,适用于 Plone。
链接
源代码
变更日志
0.3.5 (2013-05-07)
plone 4.3 的首次导入 [vangheem]
0.3.2 - 0.3.4
修复了 Plone 模板中上下文或 HTTP 请求不可用或它们是“特殊”的各种问题 [miohtama]
修复了与 LinguaPlone 的兼容性问题 [miohtama]
0.3.1 - 0.3.2
修复了 Archetypes 访问器中的 Unicode 问题
文档清理
0.3.0 - 0.3.1
修复了 plone.py 中有问题的 Archetypes 架构字段的问题
0.1.1 - 0.3.0
主要重构
0.1 - 0.1.1
修复 PyPi 部署问题
0.1
初始版本
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。