Tornado之输入与输出
下面直接来看代码:
import tornado.httpserver
import tornado.ioloop
import tornado.web
import tornado.options
from tornado.options import define,options
tornado.options.define("port",default=8080,help="run port", type=int)
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("hello hh")
self.write("<br>")
self.write(b"hello vv")
self.write("<br>")
self.flush()
import time
time.sleep(2)
di={
"name":"xps",
"age":18
}
self.write(di)
self.finish()
import json
li=['xxx',18]
li = json.dumps(li)
self.write(li)
class TestIndexHandler(tornado.web.RequestHandler):
def get(self):
name = self.get_argument('name','no')
self.write(name)
print(name)
name = self.get_arguments('name')
print(name)
def post(self, *args, **kwargs):
name = self.get_argument("name","no")
psd = self.get_argument("pas","no")
self.write(name)
self.write(psd)
class TemHandler(tornado.web.RequestHandler):
def get(self):
self.render("in_out.html")
"""
<form method="post" action="/tem">
<!--action里面是路由 .将数据提交到"/tem"-->
<p>用户名<br><input type="text" name="name"></p>
<p>密码<br><input type="password" name="psd"></p>
<input type="submit">
</form>
"""
class RecHandler(tornado.web.RequestHandler):
def get(self):
self.redirect("/index")
class ReqHandler(tornado.web.RequestHandler):
def get(self):
self.write(self.request.remote_ip)
print(self.request)
print(self.request.request_time)
class SubHandler(tornado.web.RequestHandler):
def get(self,name,age):
self.write("name: %s <br> age: %s"%(name,age))
class UseSubHandler(tornado.web.RequestHandler):
def get(self,name,age):
self.write("name: %s <br> age: %s"%(name,age))
application = tornado.web.Application(
handlers = [
(r"/",MainHandler),
(r"/index",TestIndexHandler),
(r"/temp",TemHandler),
(r"/rec",RecHandler),
(r"/req",ReqHandler),
(r"/sub/(.+)/([0-9]+)",SubHandler),
(r"/use/(?P<name>.+)/(?P<age>[0-9]+)",UseSubHandler),
],
template_path = 'templates',
debug=True
)
if __name__ == "__main__":
tornado.options.parse_command_line()
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
启动服务器之后,我们可以输入use路由来试试:`127.0.0.1:8080/use/lihua/18`,此时参数直接按照名字传入。
**注:代码内容有来自潭州课堂**