Tornado后台接收数据最常用的方法是:
self.get_argument(‘参数名’)
在这个例子中,我采用的是post方法向后台提交表单,然后使用上面的方法接收数据。在设计表单时,我将需要提交到后台的数据放到一个type=hidden的input的value中,后台会提取这个input的value。
如果是get方法接收参数,则需要拼接URL,将带有参数的URL提交,如:
http://1.2.3.4:8000/get?year=2016&month=01&day=06
在后台Handler中,这样写:
Class GetHandler(tornado.web.RequestHandler):
def get(self):
print 'year-> ' + self.get_argument('year') + ' month-> ' + self.get_argument('month') + ' day-> ' + self.get_argument(day)
这样就能打印出年月日了
下面是Post的一个小实例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<title>test</title>
</head>
<body>
<form action="/test" method="post" id="f">
<input type="checkbox" name="test" value="1"/><span>1</span>
<input type="checkbox" name="test" value="2"/><span>2</span>
<input type="checkbox" name="test" value="3"/><span>3</span>
<input type="checkbox" name="test" value="4"/><span>4</span>
<input type="checkbox" name="test" value="5"/><span>5</span><br>
<input type="hidden" name="g" id="g" value="">
<input type='button' value='submit' οnclick="fun()"/>
</form>
</body>
</html>
<script type="text/javascript">
function fun(){
obj = document.getElementsByName("test");
check_val = [];
for(k in obj){
if(obj[k].checked)
check_val.push(obj[k].value);
}
document.getElementById('g').value = check_val;
alert(document.getElementById('g').value);
document.getElementById("f").submit();
}
</script>
--------------------------------------------------------------------------------------------------------------------------------------------------------
# coding=utf-8
import os
import os.path
import tornado.locale
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
class Application(tornado.web.Application):
def __init__(self):
handlers = [
(r"/test", TestHandler),
]
settings = dict(
template_path=os.path.join(os.path.dirname(__file__), "template"),
static_path=os.path.join(os.path.dirname(__file__), "static"),
)
tornado.web.Application.__init__(self, handlers, **settings)
class TestHandler(tornado.web.RequestHandler):
def get(self):
self.render('test.html')
def post(self):
print self.get_argument('g')
self.redirect('/test')
if __name__ == "__main__":
tornado.options.parse_command_line()
http_server = tornado.httpserver.HTTPServer(Application())
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
初学者,欢迎大神们指正