簡體   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