Domanda

Qual è il più semplice e leggero motore di template HTML peso in Python che posso usare per generare newsletter personalizzate.

È stato utile?

Soluzione

Per un compito di templating molto minore, Python per sé non è poi così male. Esempio:

def dynamic_text(name, food):
    return """
    Dear %(name)s,
    We're glad to hear that you like %(food)s and we'll be sending you some more soon.
    """ % {'name':name, 'food':food}

In questo senso, è possibile utilizzare la formattazione delle stringhe in Python per la semplice template. Quello è circa il più leggero, come si arriva.

Se si vuole andare un po 'più in profondità, Jinja2 è il "designer friendly" più (leggi: semplice ) templating motore a parere di molti.

Si può anche guardare in Mako e Genshi. In definitiva, la scelta è vostra (quello che ha le caratteristiche che ci piace e si integra perfettamente con il sistema).

Altri suggerimenti

string.Template ? Questo è nella distribuzione standard di Python e coperto da PEP 292 :

from string import Template

form=Template('''Dear $john,

I am sorry to imform you, $john, but you will not be my husband
when you return from the $theater war. So sorry about that. Your
$action has caused me to reconsider.

Yours [NOT!!] forever,

Becky

''')

first={'john':'Joe','theater':'Afgan','action':'love'}
second={'john':'Robert','theater':'Iraq','action':'kiss'}
third={'john':'Jose','theater':'Korean','action':'discussion'}

print form.substitute(first)
print form.substitute(second)
print form.substitute(third)

Werkzeug Mini Modelli forma il conto abbastanza bene.

Ecco il codice sorgente su Github.

Ricerca di piccolo modello di Python in Google alzato Titen, il cui codice sorgente è solo 5.5 kB . Titen può fare l'iterazione su liste, che il built-in str.format non possono.

Mako afferma di essere leggero, ma è relativamente contenuto di grassi (> 200 kB) rispetto al Titen. Modelli Jinja2 e Django sono ben più di 100 kB.

dare una prova di python-micro-template:

https://github.com/diyism/python-micro-template

Esempio di utilizzo (kivy):

import python_micro_template
...
kvml=open('example_kivy_scrollview.kvml', 'r').read()
kvml=python_micro_template.tpl.parse(kvml)
grid=Builder.load_string(kvml)
...

esempio Template (kvml):

<:for i in range(30):#{#:>
Button:
    text: '<:=i:><:for j in range(6):#{#:><:=j:><:#}#:>'
    size: 480, 40
    size_hint: None, None
<:#}#:>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top