繁体   English   中英

Web设计人员的Python模板

[英]Python templates for web designers

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

所以:

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

Django的模板引擎相当不错。 它非常强大,而不是踩太多脚趾。 如果您正在使用Python,我会推荐它。 我不知道如何将它与Django分开,但我怀疑看到Django非常模块化会非常困难。

编辑:显然, 独立使用Django的模板引擎迷你指南已经在我面前,感谢insin

回答同一个问题时,我有很好的选票。

我的回答是:

Jinja2

良好的语法 ,良好的定制可能性

整合得很好。 可以沙盒,因此您不必完全信任您的模板作者。 (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

看看Mako

这是我如何应对网页设计师。

  1. 让他们模拟页面。 在HTML中。
  2. 使用HTML作为模板的基础,用${...}替换替换模拟的内容。
  3. 折叠循环以处理重复。

使用if语句需要协商,因为模型是页面的一个版本,并且通常对某些材料的条件表示有一些解释。

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

要添加到@Jaime索里亚诺的评论, 元史是在Trac系统中使用的模板引擎后置信0.11。 它可以用作通用模板解决方案,但重点是HTML / XHTML。 它具有自动转义功能,可以减少XSS漏洞。

Mi投票给了Clearsilver ,它是Trac在0.11之前使用的模板引擎,它也用在Google Groups或Orkut这样的页面中。 这个模板引擎的主要好处是它非常快速且与语言无关。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM