如何在 Python Django 模板中打印换行符

新手上路,请多包涵
{'quotes': u'Live before you die.\n\n"Dream as if you\'ll live forever, live as if you\'ll die today"\n\n"Love one person, take care of them until you die. You know, raise kids. Have a good life. Be a good friend. Try to be completely who you are, figure out what you personally love and go after it with everything you\'ve got no matter how much it takes." -Angelina Jolie.'}

请注意我的字典中有换行符: \n

如何使用这些换行符显示我的模板?

{{quotes|withlinebreaks\n}}

原文由 TIMEX 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 748
2 个回答

使用 linebreaks 过滤器。

例如:

 {{ value|linebreaks }}

如果值为 Joel\nis a slug ,输出将为 <p>Joel<br />is a slug</p>

原文由 Ignacio Vazquez-Abrams 发布,翻译遵循 CC BY-SA 3.0 许可协议

您还可以使用 linebreaksbr 过滤器将所有换行符简单地转换为 <br> 而无需额外的 <p>

例子:

 {{ value|linebreaksbr }}

如果 valueJoel\nis a slug ,输出将为 Joel<br>is a slug

The difference from Ignacio’s answer ( linebreaks filter) is that linebreaks tries to guess the paragraphs in a text and wrap every paragraph in <p> where linebreaksbr 只需 <br> 替换换行符

这是一个演示:

 >>> from django.template.defaultfilters import linebreaks
>>> from django.template.defaultfilters import linebreaksbr
>>> text = 'One\nbreak\n\nTwo breaks\n\n\nThree breaks'
>>> linebreaks(text)
'<p>One<br />break</p>\n\n<p>Two breaks</p>\n\n<p>Three breaks</p>'
>>> linebreaksbr(text)
'One<br />break<br /><br />Two breaks<br /><br /><br />Three breaks'

原文由 Burnash 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题