我正在使用Flask和Jinja2写一个简单的博客,我想在帖子中使用HTML标签。
所以我在我的模板中禁用了 autoescape ,如下所示:
{{ post.body|safe }}
但是当我写>>> print()
或it's
之类的内容时,我不想自己逃避它们,我想再次启用 autoescape 。是否有像HTML标签那样的东西?
答案 0 :(得分:1)
好吧,如果你想在post.body
中使用HTML,那么你必须处理一些符号必须在HTML中转义的事实,例如: >
应为>
。第二个选项是使用<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>>>> print('Hello world')</code></span>"