【问题标题】:Detecting newline character on user's input (web2py)检测用户输入的换行符(web2py)
【发布时间】:2017-04-10 23:28:09
【问题描述】:

我有下表:

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}}

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

【问题讨论】:

    标签: python html forms web2py


    【解决方案1】:

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

    你也可以用<br>标签替换换行符:

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

    因为文本现在包含&lt;br&gt; HTML 标签,所以有必要将其包裹在XML() 中以防止 web2py 转义 HTML ——但您还需要清理文本并只允许 &lt;br&gt; 标签,防止恶意代码被执行。

    【讨论】:

      【解决方案2】:

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

      &lt;pre&gt;

      HTML pre 元素(或 HTML Preformatted Text)表示 预格式化的文本。此元素中的文本通常显示在 一种非比例(“等宽”)字体,与在 文件。此元素内的空格显示为已键入。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-12
        • 2018-10-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多