为什么Twitter Bootstrap输入验证会影响Tornado中的名称参数?

时间:2016-06-13 19:06:58

标签: python twitter-bootstrap tornado

我正在修改Tornado chatdemo example。我按原样复制示例并进行两处修改:

  1. 我在当前输入元素旁边添加了一个新的输入元素:

    <tr>
    <td><input name="body" id="message" style="width:500px"></td>
    <td><input name="bnum"></td>    # <= this is what I added
    <td style="padding-left:5px">
    

    (加上标题:)

    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    
  2. 我在chatdemo.py的{​​{1}}中添加了对此的引用:

    MessageNewHandler
  3. 此代码按预期工作 - 两个字符串连接并显示在消息队列中。什么打破它(奇怪的是)添加了Bootstrap表单验证。

    "body": self.get_argument("qname") + ' ' + self.get_argument("bnum"),
    

    导致运行时错误(提交表单时):

    <input name="bnum"  type="number">
    

    此问题出现在400 POST /a/message/new (::1): Missing argument bnum 但不出现type="number"。任何形式验证的想法都会改变Tornado提取名称的能力吗?

1 个答案:

答案 0 :(得分:0)

这解决了它:

str(self.get_argument("bnum"))

我想,这个值作为数字而不是字符串返回是有意义的,但结果的错误非常神秘。