Conosco la funzione di pallone render_template
. Devo dare il nome del file del modello. Ma ora voglio rendere la stringa di un modello (cioè il contenuto del modello). Ciò ha senso. ma non voglio spiegare ora perché. Come posso rendere semplicemente il testo di un modello?Python Flask Render testo da variabile come render_template
risposta
È possibile utilizzare render_template_string
:
>>> from flask import render_template_string
>>> render_template_string('hello {{ what }}', what='world')
'hello world'
è possibile utilizzare from_string
template = "text {{ hello }}"
print app.jinja_env.from_string(template).render(hello='Hello')
>> text Hello
Dal momento che sta usando Flask può semplicemente usare 'render_template_string' (importato da Flask) – ThiefMaster
Non riesco a spuntare entrambe le risposte come giusto. Anche la tua risposta è buona;) – Faminator
Tratto da What's the easiest way to escape HTML in Python.
import cgi
rendered = render_template('template.html')
return cgi.escape(rendered)
Cosa ha a che fare l'escape HTML con questa domanda? – ThiefMaster
Restituisce il modello di file HTML visualizzato come una stringa. Le altre risposte fanno semplicemente stringhe di template semplici. @ThiefMaster –
In realtà è possibile chiamare Jinja2 renda funzione direttamente:
jinja2.Template("I am {{ var }}").render(**paramaters)
Quando non lavora con la boccetta, questo è utile
Basta aprire il file modello e restituirlo come stringa. –
Ma se lo faccio (ho installato l'estensione flask-bootstrap) mi darà queste cose: {% estende "bootstrap/base.html"%} ecc. Come testo normale e non gestito. – Faminator
Non è questa la tua domanda? _Come posso rendere il testo di un template semplicemente? _ –