我正在修改Tornado chatdemo
example。我按原样复制示例并进行两处修改:
我在当前输入元素旁边添加了一个新的输入元素:
<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>
我在chatdemo.py
的{{1}}中添加了对此的引用:
MessageNewHandler
此代码按预期工作 - 两个字符串连接并显示在消息队列中。什么打破它(奇怪的是)添加了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提取名称的能力吗?
get_argument
文档答案 0 :(得分:0)
这解决了它:
str(self.get_argument("bnum"))
我想,这个值作为数字而不是字符串返回是有意义的,但结果的错误非常神秘。