html上未保留的新行-flask

问题描述

我有一个带有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 %}