跳转到主要内容

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)

标签

collective.templateengine 使用术语标签来引用你可以在模板引擎上下文中使用的函数。将来,标签打算扩展以涵盖模板语言结构。

collective.templateengines 不附带任何标签。要定义标签,我建议你查看 collective.easytemplate 包。

  • 标签提供 collective.templateengines.interfaces.ITag 接口

  • 使用 Engine.addTag() 函数将标签注册到模板引擎中。

问题

  • Cheetah 架构缺乏独立的公开编译和评估阶段

  • Cheetah 默认将完整的 Python 命名空间暴露给模板,这使得保护它变得困难

  • Cheetah 无法遍历 Zope 函数或属性

示例

Python Template Engines 用于

源代码

作者

mFabrik Research Oy - 招聘 Python 和 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

  • 初始版本

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分发

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面