Web设计人员的Python模板

时间:2008-10-18 03:56:07

标签: python templating

网页设计师有哪些好的模板引擎?我绝对喜欢我喜欢与程序员合作的东西。但网页设计师似乎有不同的思考方式,因此可能更喜欢不同的系统。

所以:

  • 网页设计师:您更喜欢使用什么模板引擎?
  • 程序员:你使用过哪些模板引擎,这使得与网页设计师合作变得容易?

7 个答案:

答案 0 :(得分:6)

Django's templating engine非常体面。它非常强大,而不是踩太多脚趾。如果您正在使用Python,我会推荐它。我不知道如何将它与Django分开,但我怀疑看到Django非常模块化会非常困难。

编辑:显然mini-guide to using Django's templating engine standalone已经摆在我面前,谢谢insin

答案 1 :(得分:6)

我在answering this same question's duplicate时获得了很好的选票。

我的回答是:

Jinja2

syntax,好customization possibilities

整合良好。可以沙盒,因此您不必完全信任您的模板作者。 (Mako不能)。

它也非常快,还有将模板编译为字节码并对其进行缓存的好处,如下面的演示:

>>> import jinja2
>>> print jinja2.Environment().compile('{% for row in data %}{{ row.name | upper }}{% endfor %}', raw=True) 
from __future__ import division
from jinja2.runtime import LoopContext, Context, TemplateReference, Macro, Markup, TemplateRuntimeError, missing, concat, escape, markup_join, unicode_join
name = None

def root(context, environment=environment):
    l_data = context.resolve('data')
    t_1 = environment.filters['upper']
    if 0: yield None
    for l_row in l_data:
        if 0: yield None
        yield unicode(t_1(environment.getattr(l_row, 'name')))

blocks = {}
debug_info = '1=9'

此代码由Jinja2即时生成。当然,编译器会进一步优化它(例如删除if 0: yield None

答案 2 :(得分:5)

请看Mako

以下是我应对网页设计师的方法。

  1. 让他们模拟页面。在HTML中。
  2. 使用HTML作为模板的基础,将替换模拟内容替换为${...}替换。
  3. 折叠循环以处理重复。
  4. 使用if语句需要协商,因为模型是页面的一个版本,并且通常会对某些材料的条件表示进行一些解释。

答案 3 :(得分:2)

我个人认为Cheetah templates非常适合设计师。需要一些时间的是模板子类化的想法,这在开始时很难得到。但是设计师会创建一个完整的模板,复制他的代码......然后你可以稍微清理一下。

答案 4 :(得分:2)

要添加@Jaime Soriano的评论,Genshi是Trac post-0.11中使用的模板引擎。它可以用作通用模板解决方案,但重点是HTML / XHTML。它具有自动转义功能,可以减少XSS漏洞。

答案 5 :(得分:1)

Mi vote转到Clearsilver,它是Trac在0.11之前使用的模板引擎,它也用在Google Groups或Orkut等网页中。这个模板引擎的主要好处是它非常快速且与语言无关。

答案 6 :(得分:1)

我扮演了两个角色,但我更喜欢程序员的模板语言。但是,我是一些自由职业者为一些图形设计师做了“繁重的”支持和数据库编程,并且可以告诉你我已经用XML模板语言(SimpleTAL,Genshi等)获得了最好的运气。

当我想成为网页设计师友好时,我会寻找可以加载到Dreamweaver中并查看结果的内容。这允许我在模板中提供所有钩子,让设计师调整它,而不用担心破坏我已经写过的东西。它允许我们共享代码并在我们对格式感到满意的情况下更好地协同工作。

如果设计师在没有WYSIWYG编辑器的情况下进行编码,我认为您的选择不受限制,您可以选择自己喜欢的。