检测用户输入上的换行符(web2py)

时间:2016-11-26 23:00:14

标签: python html forms web2py

我有下表:

db.define_table('comm',
                Field('post','reference post', readable=False, writable=False),
                Field('body','text', requires=IS_NOT_EMPTY()),
                auth.signature
                )

并在python函数中,代码如下:

form=SQLFORM(db.comm).process()

我通过python函数在返回的视图中调用该表单

{{=form}}

问题是当用户输入两个或更多段落时,它不会检测换行符。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

假设您在视图中引用了用户输入的后续显示,则可以使用<pre>标记:http://www.w3schools.com/tags/tag_pre.asp。但是,您可能需要一些CSS来获得您喜欢的字体/样式(默认情况下,浏览器将使用具有固定宽度字体的替代样式)。

您还可以使用<br>标记替换换行符:

{{=XML(record.body.replace('\n', '<br>'), sanitize=True, permitted_tags=['br/'])}}

由于文本现在包含<br>个HTML标记,因此有必要将其包含在XML()中以防止web2py转义HTML - 但您还需要清理文本并允许 <br>标记,以防止恶意代码被执行。

答案 1 :(得分:0)

使用pre标签显示要检测换行符的内容。

<pre>

  

HTML pre元素(或HTML Preformatted Text)表示   预先格式化的文本。此元素中的文本通常显示在   一个非比例(&#34; monospace&#34;)字体,与其中的字体完全一致   文件。此元素中的空格显示为已键入。

{{for post in comments:}}
    <pre>{{=post.body}}</pre>
{{pass}}