Python 使用'\n';烧瓶里的人物?
我在玩flask时,遇到了“\n”字符的一个奇怪问题。它在我的浏览器中似乎没有效果,我试着把Python 使用'\n';烧瓶里的人物?,python,flask,Python,Flask,我在玩flask时,遇到了“\n”字符的一个奇怪问题。它在我的浏览器中似乎没有效果,我试着把放进去,但没用,有什么想法吗 from flask import Flask from flask import render_template test=Flask(__name__) @test.route('/') def root(): str='yay\nsuper' return str test.run(debug=True) 换行符仅在特定情况下对HTML呈现有影响。您需
放进去,但没用,有什么想法吗
from flask import Flask
from flask import render_template
test=Flask(__name__)
@test.route('/')
def root():
str='yay\nsuper'
return str
test.run(debug=True)
换行符仅在特定情况下对HTML呈现有影响。您需要使用表示换行符的HTML标记,例如
def root():
str='yay<br/>super'
return str
def root():
str='yay
超级'
返回str
所以flask自动转义html标记。因此,添加
标记只是在屏幕上呈现它们,而不是实际创建换行符
有两种解决方法:
text = text.split('\n')
然后在模板中,使用for循环:
{% for para in text %}
<p>{{para}}</p>
{% endfor %}
然后,我们通过包围需要的块来禁用自动转义
{% autoescape false %}
{{text}}
{% endautoescape %}
无论何时进行此操作,请非常小心此块中使用的变量
而不是
{% for para in text %}
{{para}}<br>
{% endfor %}
{%用于文本%中的段落]
{{para}}
{%endfor%}
然后结果就不会那么笨重了如果有人像我一样来到这里,出于安全原因,也不想使用{%autoescape false%},或者在某些情况下可能会不方便的文本,我找到了一个很好的替代方案:
这是正确的,但是如果你不介意的话,如果我把它放在一个块元素中,我该怎么做?你说的块元素是什么意思?例如,如果我放一个像这样的变量{%block content%}{{stuff}{%endblock%}{%endblock%}不,实际上它是在为我打印
,屏幕截图:编辑:H1是对HTML标记的测试,但它与BRA相同,因为这被标记为正确答案@ollien正在经历标准的Jinja2行为。Samarth的回答解决了这个问题。{%autoescape false%}!这就是我要找的,谢谢。链接已经死了。这是烧瓶1.1的例子:为什么使用可以保护安全性而不是?我认为他的意思是,它维护的安全性与使用
…
一样,但体积较小。我怎么用django做这个?对不起,我从来没有用过django!
{% for para in text %}
{{para}}<br>
{% endfor %}
from flask import Markup
value = Markup('First line.<br>Second line.<br>')
{{ value }}