python - 在用户提交的内容中呈现换行符(Python 网络应用程序)

标签 python html jinja2 web.py

我有一个 web.py 应用程序,它从文本区域获取输入并将其输入到数据库中。我可以从数据库中获取信息并将其发布到页面,但 NEWLINES 不见了。回发到 HTML 时如何保留换行符?数据确实有 \r\n在其中,但在 HTML 中未呈现为 NEWLINES。有什么想法吗?这是一个小例子:

(2, u'Title', u'content here...hey\r\nthis\r\nhas\r\nbreaks in it....?', 
    datetime.datetime(2012, 7, 5, 21, 5, 14, 354516))

那是我从数据库返回的。我需要 \r\n代表 <br />如果有两个 <p>会很棒。任何方向将不胜感激。

还有这方面的图书馆吗?我听说过 markdown 和 mark up 但我找不到如何从 python 字符串发布 html 数据的示例?

最佳答案

实现此目的的两种主要方式。最简单的方法是将输出包装在 <pre></pre> 中这会将其格式化为输入的格式。

或者,您可以用 <br /> 替换 newlies| (而不是 <p> )因为字符代表换行符而不是段落。

对于第二种选择,这是一种方法:

>>> s
'hello\nthere\r\nthis\n\ris a test'
>>> r = '<br />'
>>> s.replace('\r\n',r).replace('\n\r',r).replace('\r',r).replace('\n',r)
'hello<br />there<br />this<br />is a test'
>>> 

或者第三种选择——使用众多文本输入库/格式中的一种,并通过它们呈现内容(正如其他人提到的——比如 markdown)。

但是,如果您只想进行简单的替换,那就太过分了。

关于python - 在用户提交的内容中呈现换行符(Python 网络应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11356172/

相关文章:

python - RuntimeError : output with shape [1, 224, 224] 与广播形状 [3, 224, 224] 不匹配

python - 在 Python 中捕获键盘中断而不使用 try-except

python - 在 python 中使用 win32 发送 Outlook 电子邮件

ansible - 未定义属性时解决 Ansible map 过滤器错误的最佳方法是什么?

Django 模板渲染缓慢

python - 如何在 Python 中像 ERB 一样进行模板化?

python - 将本地数据文件加载到 Colaboratory

html - 可以为所有非继承的 css 属性使用继承值吗?

html - 调整窗口大小时元素四处移动?

html - 在 Django 管理页面中向页脚添加文本