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

标签 python flask jinja2

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

{{ post.body|safe }}

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

最佳答案

好吧,如果你想在你的 post.body 中使用 HTML - 然后你必须处理一些符号必须在 HTML 中转义的事实,例如>应该是 &gt; .第二个选项是使用 <pre> .第三个选项是对主体进行后处理,以便代码部分像 >>>会自动转义。例如:

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>"

关于python - 在 Jinja2 中禁用后重新启用自动转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079223/

相关文章:

python - 在 apache flink 中嵌入现有的 ML 模型

python Flask mail.send 错误检查并记录

Django 多模板继承

Ansible 当条件处于循环中时

Python线程: Are arguments passed to thread evaluated in parallel?

python - flask-app 根目录的 jinja 变量

python - DataFrame (Flask) 内的链接

python - Docker 容器中的 Gunicorn Flask 应用程序未公开

html - 如何防止由于 HTML 代码中的换行而在输出中出现空格?

python - 在 Python 中,什么决定了遍历 kwargs 时的顺序?