如何在 Jinja2 中打印 \n 字符

boa*_*tor 5 python jinja2 flask

我在 Python 中有以下字符串:thestring = "123\n456"

在我的 Jinja2 模板中,我使用的{{thestring}}输出是:

123
456

我能让 Jinja2 打印精确表示123\n456(包括\n)的唯一方法是转义thestring = "123\\n456"

有没有其他方法可以直接在模板中完成此操作?

boa*_*tor 6

我自己回答一下,也许对有同样问题的人有帮助。

这有效:{{thestring.encode('string_escape')}}

  • 这似乎不适用于“\n”。http://jinja.pocoo.org/docs/dev/templates/#escape (2认同)

Vla*_*rov 5

对我来说{{thestring.encode('string_escape')}}失败并出现以下错误:

escape_encode() argument 1 must be string, not AnsibleUnicode
Run Code Online (Sandbox Code Playgroud)

不知道我做错了什么,但以下对我来说效果很好:

{{ thestring | replace('\n','\\n') }}
Run Code Online (Sandbox Code Playgroud)