我在Flask中使用Jinja2。我想从字符串中呈现模板。我尝试了以下两种方法:
$payoneConfig
和
getAvailableMethods()
然而,两种方法都返回:
Payone_Core_Model_Config_Payment
我查看了手册和此网址:https://gist.github.com/wrunk/1317933
但是,在使用字符串时,没有指定选择加载程序。
答案 0 :(得分:29)
您可以在that list
的loader
内提供Environment
from jinja2 import Environment, BaseLoader
rtemplate = Environment(loader=BaseLoader).from_string(myString)
data = rtemplate.render(**data)
修改:问题在于myString
,它有{% include 'test.html' %}
,而Jinja2不知道从哪里获取模板。
<强>更新强>
正如@ iver56所说,最好是:
rtemplate = Environment(loader=BaseLoader()).from_string(myString)
答案 1 :(得分:0)
当我遇到这个问题时,我想要FileSystemLoader:
from jinja2 import Environment, FileSystemLoader
with open("templates/some_template.html") as f:
template_str = f.read()
template = Environment(loader=FileSystemLoader("templates/")).from_string(template_str)
html_str = template.render(default_start_page_lanes=default_start_page_lanes,
**data)