向Tornado后台传数据
2016-01-07 15:50
316 查看
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' onclick="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()
初学者,欢迎大神们指正
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' onclick="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()
初学者,欢迎大神们指正
相关文章推荐
- Tornado Web服务器中处理空白字符的解决方案
- python为tornado添加recaptcha验证码功能
- 剖析Python的Tornado框架中session支持的实现代码
- Tornado Web服务器多进程启动的2个方法
- 高性能web服务器框架Tornado简单实现restful接口及开发实例
- Tornado服务器中绑定域名、虚拟主机的方法
- Python Web服务器Tornado使用小结
- tornado捕获和处理404错误的方法
- Web服务器框架 Tornado简介
- tornado把static_path指向到七牛
- 在Mopaas上部署WSGI类型的(Django, Tornado, Flask)Python应用
- tornado 源码初识
- tornado 源码分析 之 异步io的实现方式
- 实践,用tornado实现自定义协议server
- redis集群搭建
- ToRPC:一个双向RPC的Python实现
- 用Python(Tornado)模拟登录小米帐号
- nginx+tornado与nginx+go的性能测试
- tornado使用UIModule块
- tornado websocket 学习历程