Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python &引用;“评估”;Jinja2模板中的语句_Python_Smarty_Jinja2 - Fatal编程技术网

Python &引用;“评估”;Jinja2模板中的语句

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):

我正在尝试将一些旧的Smarty模板转换为Jinja2

Smarty在模板中使用
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}}
参考