J'utilise Jinja2 dans Flask. Je veux rendre un modèle à partir d'une chaîne. J'ai essayé les 2 méthodes suivantes:
rtemplate = jinja2.Environment().from_string(myString)
data = rtemplate.render(**data)
et
rtemplate = jinja2.Template(myString)
data = rtemplate.render(**data)
Cependant, les deux méthodes renvoient:
TypeError: no loader for this environment specified
J'ai vérifié le manuel et cette URL: https://Gist.github.com/wrunk/13179
Cependant, nulle part n'est spécifié pour sélectionner un chargeur lors de l'utilisation d'une chaîne.
Vous pouvez fournir loader
dans Environment
à partir de cette liste
from jinja2 import Environment, BaseLoader
rtemplate = Environment(loader=BaseLoader).from_string(myString)
data = rtemplate.render(**data)
Edit : Le problème était avec myString
, il a {% include 'test.html' %}
et Jinja2 n'a aucune idée d'où obtenir le modèle.
[~ # ~] mise à jour [~ # ~]
Comme l'a gentiment noté @ iver56, il vaut mieux:
rtemplate = Environment(loader=BaseLoader()).from_string(myString)