Domanda

Invece di passare il giorno (o l'anno) successivo a leggere su tutti loro, ci sono suggerimenti per i motori di template che dovrei approfondire?

È stato utile?

Soluzione

Il miglior consiglio: provali tutti. Non ci vorrà molto.

Il mio preferito: Jinja2 (per un miglio)

Ha una sintassi decente, può tracciare gli errori attraverso di essa ed è sandboxable.

Altri suggerimenti

Se stai generando codice, potresti trovare Cog utile - è specifico per la generazione di codice , piuttosto che essere un linguaggio di template generalmente applicabile.

La preoccupazione più importante è se puoi convivere con la sintassi richiesta dai template. Il secondo e il terzo (a seconda delle esigenze dell'applicazione) sarebbero la velocità e la facilità di distribuzione.

Li ho guardati tutti, ma l'unica sintassi che potevo sopportare era Jinja . Jinja ha il vantaggio di supportare molti costrutti Python, quindi è molto facile aggiungere frammenti di funzionalità ai modelli secondo necessità, senza codificare tag speciali. Gran parte di ciò che richiede tag in altri sistemi di template è gestito da macro in Jinja.

Naturalmente, se stai cercando qualcosa di facile e veloce, è difficile battere API di template di Python nella lingua principale.

Aggiornamento: Kid sembra aver avuto successo Genshi .

Ho usato Kid, che credo sia uno dei sistemi più vecchi. L'ho trovato estremamente solido, stabile e affidabile. È basato su tag, quindi è utile per lavorare con XML / HTML. È interessante notare che le funzioni del modello sono eseguite come attributi HTML, non blocchi speciali, ad esempio {% ...%}. Tuttavia, alcuni aspetti di ciò (specialmente il modo in cui "include") possono diventare piuttosto fastidiosi. Inoltre, non sembra essere sviluppato attivamente o affatto.

Vale la pena dare un'occhiata se vuoi qualcosa che è in circolazione da un po 'di tempo ed è diventato abbastanza stabile. Se vuoi qualcosa di più recente, ho sentito cose positive su Genshi e Jinja.

Mi piace Clearsilver perché funziona con diverse lingue e applica rigorosamente la separazione tra dati e presentazione. In precedenza ho usato Cheetah e sebbene sia abbastanza carino, non mi piaceva lavorare con quella che a volte sembrava una forma limitata di Python.

Se stai lavorando con X [HT] ML, uno dei sistemi di template basati su tag che può lasciarti con modelli ben formati è una buona mossa. Uso PXTL , FWIW. (Può produrre altri formati, ma se la tua enfasi non è XML o HTML non sarebbe una scelta sensata.)

Ho una forte antipatia per i sistemi di template che affermano di & # 8220; aiutarti a separare la logica di business e la presentazione & # 8221; limitando le espressioni alla loro piccola lingua. Sembra che non capiscano che esiste qualcosa come & # 8220; logica di presentazione & # 8221; e a volte può essere abbastanza complicato da richiedere un linguaggio reale come Python per eseguirlo. Avere eliminato la logica di presentazione nell'app con la logica aziendale è quindi non una vittoria . Evitare!

(p. espressioni nei modelli così come sono; tagliare la funzionalità e far sì che l'utente impari un'altra nuova lingua non ti fa guadagnare nulla.)

Se vuoi un'opzione molto leggera , prova il modello. È solo come 80 righe di codice in un singolo modulo. Dai un'occhiata qui e qui (è stato pubblicato in un blog). Penso che sia una soluzione intelligente e molto mirata, se le funzionalità sono sufficienti per te.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top