Python &引用;“评估”;Jinja2模板中的语句
我正在尝试将一些旧的Smarty模板转换为Jinja2 Smarty在模板中使用Python &引用;“评估”;Jinja2模板中的语句,python,smarty,jinja2,Python,Smarty,Jinja2,我正在尝试将一些旧的Smarty模板转换为Jinja2 Smarty在模板中使用eval语句从当前上下文呈现模板化字符串 Jinja2是否有eval等价物?或者,对于这种情况,什么是好的解决方法?使用decorator为呈现变量创建一个: from jinja2 import contextfilter, Template from markupsafe import Markup @contextfilter def dangerous_render(context, value):
eval
语句从当前上下文呈现模板化字符串
Jinja2是否有eval
等价物?或者,对于这种情况,什么是好的解决方法?使用decorator为呈现变量创建一个:
from jinja2 import contextfilter, Template
from markupsafe import Markup
@contextfilter
def dangerous_render(context, value):
return Markup(Template(value).render(context)).render()
然后在template.html文件中:
{{ myvar|dangerous_render }}
我正在寻找一个类似的eval用例,却遇到了另一个堆栈溢出帖子 这对我有用 routes.py
def index():
html = "<b>actual eval string</b>"
return render_template('index.html', html_str = html)
def index():
html=“实际评估字符串”
返回呈现模板('index.html',html\u str=html)
index.html
<html>
<head>
<title>eval jinja</title>
</head>
<body>
{{ html_str | safe }}
</body>
</html>
伊瓦尔金贾
{{html_str | safe}}
参考: