在 Jinja2 中禁用后重新启用自动转义

Re-enable autoescape after it has been disabled in Jinja2

我正在使用 Flask 和 Jinja2 写一个简单的博客,我想在我的帖子中使用 HTML 标签。
所以我在我的模板中禁用了 autoescape,如下所示:

{{ post.body|safe }}

但是当我写 >>> print()it's 之类的东西时,但是我不想自己转义它们,我想启用 autoescape再次。是否有类似 HTML 标签的东西可以做到这一点?

好吧,如果您想在 post.body 中使用 HTML - 那么您必须处理一些符号必须在 HTML 中转义的事实,例如> 应该是 &gt;。第二个选项是使用 <pre>。第三个选项是post——处理正文,这样像>>>这样的代码部分就自动转义了。例如:

class Post:
    body = "<span><code>>>> print('Hello world')</code></span>"

    @property
    def html_body(self):
        # 1. Locate all <code>...</code> blocks
        # 2. Convert the text in them to proper HTML
        ...
        return processed_body

    # which should return 
    # "<span><code>&gt;&gt;&gt; print(&apos;Hello world&apos;)</code></span>"