Python 如何在模板上正确转义Jinja代码?

Python 如何在模板上正确转义Jinja代码?,python,jinja2,Python,Jinja2,如何在模板上呈现jinja代码 例如,我有一个路由需要在给定的HTML模板上呈现jinja代码,如下所示: from app import app from flask import render_template from jinja2 import Template @app.route('/View/Package') def getView(): HtmlDesc=""" <div class="codehilite"><pre><span

如何在模板上呈现jinja代码

例如,我有一个路由需要在给定的HTML模板上呈现jinja代码,如下所示:

from app import app
from flask import render_template
from jinja2 import Template

@app.route('/View/Package')
def getView():
    HtmlDesc="""
    <div class="codehilite"><pre><span></span><span class="p">{{</span><span class="n">cookiecutter</span><span class="o">.</span><span class="n">repo_name</span><span class="p">}}</span><span class="o">/</span><span class="p">{{</span><span class="n">cookiecutter</span><span class="o">.</span><span class="n">repo_name</span><span class="p">}}</span><span class="o">/</span><span class="p">{{</span><span class="n">cookiecutter</span><span class="o">.</span><span class="n">repo_name</span><span class="p">}}</span><span class="o">.</span><span class="n">py</span>
    </pre></div>
    """

    return render_template('package.html', html=Template(HtmlDesc).render())
除此之外:


TemplateSyntaxError:意外“在要显示的内容的末尾添加一个| safe。它会把事情弄清楚的。把它也做成一根绳子

在模板中,您似乎缺少标记中
{{}
中的
|safe


您还必须删除
Template()
以确保整个字符串被转义

在问题中,我确实在模板中的
jinja
代码旁边做了一个
{html|safe}
。但它仍然会引发一个异常,如图所示。ThanksI在HtmlDesc变量中的意思是在
span class=“p”
之后,啊,我明白你的意思了,这似乎很难做到,因为
HtmlDesc
中的文本并不是一个固定的值。在我的应用程序中,它接收从包含python包的文本文件
README
读取的值,并将其转换为html。上面的文字是从包装上读来的。谢谢,恐怕我不明白你想达到什么目的。要将html desc呈现为html代码还是纯文本请尝试删除Template()调用
<h1>Project Description</h1>
    <div class="project-description">   
    {% raw %}{% filter escape %}{{html|safe}}{% endfilter %}{% endraw %}
    </div>
</div>