Questa parte della procedura dettagliata del codice del guestbook Python mostra come utilizzare i modelli Jinja per generare contenuti web dinamici.
Questa pagina fa parte di un tutorial multi pagina. Per partire dall'inizio e vedere le istruzioni per la configurazione, vai a Creare un guestbook.
L'HTML incorporato nel codice è disordinato e difficile da gestire. È preferibile utilizzare un sistema di modelli, in cui l'HTML viene conservato in un file separato con sintassi speciale per indicare dove vengono visualizzati i dati dell'applicazione. Esistono molti sistemi di modelli per Python: EZT, Cheetah, ClearSilver, Quixote, Django e Jinja2 sono solo alcuni. Puoi utilizzare il motore che preferisci raggruppandolo con il codice dell'applicazione.
Per praticità, App Engine include i motori dei modelli Django e Jinja2.
Utilizzo dei modelli Jinja2
Il file app.yaml
elenca la versione più recente di jinja2
come libreria obbligatoria.
Le applicazioni di produzione dovrebbero utilizzare un numero di versione effettivo anziché version: latest
.
L'app importa jinja2
e crea un oggetto jinja2.Environment
.
Il metodo get
per il gestore delle richieste MainPage
forma un dizionario di coppie chiave/valore e lo passa a template.render
.
La pagina viene visualizzata in base al modello index.html
, che riceve il dizionario come input.
Il metodo JINJA_ENVIRONMENT.get_template(name)
prende il nome di un file modello
e restituisce un oggetto modello. La chiamata template.render(template_values)
prende un dizionario di valori e restituisce il testo visualizzato. Il modello utilizza la sintassi del modello Jinja2 per accedere ai valori ed eseguire l'iterazione, e può fare riferimento alle proprietà di questi valori.