当前位置:  开发笔记 > 编程语言 > 正文

Web设计人员的Python模板

如何解决《Web设计人员的Python模板》经验,为你挑选了3个好方法。

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

所以:

网页设计师:您更喜欢使用什么模板引擎?

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

akdom.. 6

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

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



1> akdom..:

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

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



2> nosklo..:

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

我的回答是:

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)



3> S.Lott..:

看看Mako.

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

    让他们模拟页面.在HTML中.

    使用HTML作为模板的基础,用替换替换模拟的内容${...}.

    折叠循环以处理重复.

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

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有