Python jinja2:我可以从表达式中呈现模板标记吗?

Python jinja2:我可以从表达式中呈现模板标记吗?,python,flask,jinja2,Python,Flask,Jinja2,如何从表达式返回带有模板标记的文本,并让Jinja呈现标记?看起来Jinja只进行了一次传递,只是转义并转储文本,而没有将其作为模板的一部分进行进一步处理(99%的情况下这是正确的)。有没有办法使用渲染器进行两次传递,或者先渲染表达式的结果并将其传递给模板 简化问题 我在下面提供了更多细节,以防比我想象的更多,但这应该是解决问题所需的所有信息 如果do_render()返回Hello there{{current_user.name},我如何在模板中执行以下操作,以便获得name的值 <d

如何从表达式返回带有模板标记的文本,并让Jinja呈现标记?看起来Jinja只进行了一次传递,只是转义并转储文本,而没有将其作为模板的一部分进行进一步处理(99%的情况下这是正确的)。有没有办法使用渲染器进行两次传递,或者先渲染表达式的结果并将其传递给模板

简化问题 我在下面提供了更多细节,以防比我想象的更多,但这应该是解决问题所需的所有信息

如果
do_render()
返回
Hello there{{current_user.name}

,我如何在模板中执行以下操作,以便获得
name
的值

<div>
{{ do_render() }}
</div>
然后,我向Flask Nav注册渲染器,并通过将
{{Nav.main_Nav.render()}
插入到我的基本模板(my.html文件从中继承)来渲染它。所有这些都有效

我的问题是,我只想在用户未登录时使用登录表单

登入表格为:

{% if not current_user.is_authenticated() %}
<form class="navbar-form navbar-right" role="search" action="login" method="post">
<div class="form-group"><input type="text" name="username" /></div>
<div class="form-group"><input type="password" name="password" /></div>
</form>
{% else %}
<div class="navbar-right">
Welcome {{ current_user.name }} | <a href="{{ url_for('logout') }}">Logout</a>
</div>
{% endif %}
{%如果不是当前用户。\u是否经过身份验证()%}
{%else%}
欢迎{{current_user.name}}}
{%endif%}
我的HTML输出与模板相同;无论是语句、表达式还是注释都不会被视为这样


其他尝试:我首先生成了导航栏,然后通过
render\u template('index.html',navbar=navbar)
将其传递给模板,但我遇到了同样的问题。我也尝试过宏。我已经准备好自己在基本模板中编写导航菜单并完成它,但现在感觉好像要放弃了。

除了
{%include…%}
{%extends…%}
,,如果没有一点自定义,您将无法让模板系统自动呈现在运行时添加到模板中的内容


Jinja2的美妙之处在于它的API非常强大,你可以做很多事情,而不必感觉自己在“黑客”系统。要执行第一个示例所暗示的操作,只需让函数呈现包含的模板片段snd并返回呈现的字符串。如果您希望使用父模板的上下文呈现模板,这不会自动发生,但这不是问题,因为您可以在模板中的函数调用中直接传入所需的任何内容

除了
{%include…%}
{%extends…%}
之外,如果没有一点自定义,模板系统将无法自动呈现在运行时添加到模板中的内容


Jinja2的美妙之处在于它的API非常强大,你可以做很多事情,而不必感觉自己在“黑客”系统。要执行第一个示例所暗示的操作,只需让函数呈现包含的模板片段snd并返回呈现的字符串。如果您希望使用父模板的上下文呈现模板,这不会自动发生,但这不是问题,因为您可以在模板中的函数调用中直接传入所需的任何内容

比我做的简单多了。谢谢。比我做的简单多了。非常感谢。
{% if not current_user.is_authenticated() %}
<form class="navbar-form navbar-right" role="search" action="login" method="post">
<div class="form-group"><input type="text" name="username" /></div>
<div class="form-group"><input type="password" name="password" /></div>
</form>
{% else %}
<div class="navbar-right">
Welcome {{ current_user.name }} | <a href="{{ url_for('logout') }}">Logout</a>
</div>
{% endif %}