问题描述
我有一个带有flask的json文件crud应用程序,在json文件上或在python解释器上访问它时,我确实看到了新行“ \ n”。
>>> for i in d:
... if i['tag']=="flask":
... i
...
'tag': 'flask','head': 'multiline test','data': 'app.jinja_env.keep_trailing_newline=True\n# line2'}
{'tag': 'flask','head': 'multiline test3','data': 'st1\r\nst2'}
但是,即使在html模板上,\ n也不保留,尽管将keep尾随换行符设置为true。我在这里想念什么吗?我需要保留html上的新行-如何做到这一点?
# app.py
from jinja2 import Environment
TEMPLATE_ENVIRONMENT = Environment(
keep_trailing_newline=True)
# html
{%for j in d%}
{{j['data']}}
{%endfor%}
下面是我在浏览器上获得的输出,请注意,同一词典显示了\ n,实际文件也显示了\ n。
app.jinja_env.keep_trailing_newline =真#2行
st1 st2
解决方法
尝试了许多选项,但这一方法可行-使用自动转义并用管道替换
{% autoescape false %}
{{j['data']|replace("\n","br /")
{% endautoescape %}