Tornado之输入与输出篇

xiaoxiao2021-02-28  41

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() #不flush的话会等到最后一起保存 import time #引入time模块 time.sleep(2) di={ "name":"xps", "age":18 } self.write(di) # write只能接受二进制 ,字典,字符串 self.finish() # 后面的也运行,只是不会再输出到页面上 import json li=['xxx',18] li = json.dumps(li) #列表转换json成字符串 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) # print(self.get_query_argument('name','no')) #专门获取查询字符串url中参数 # print(self.get_body_argument('name','no')) #专门获取body内容 def post(self, *args, **kwargs): #post请求 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") #返回一个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) #返回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 = [ #handlers 固定的变量命名规则 (r"/",MainHandler), (r"/index",TestIndexHandler), (r"/temp",TemHandler), (r"/rec",RecHandler), (r"/req",ReqHandler), (r"/sub/(.+)/([0-9]+)",SubHandler), # URL传参,正则匹配 点号. -> 除自身之外 (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`,此时参数直接按照名字传入。 **注:代码内容有来自潭州课堂**
转载请注明原文地址: https://www.6miu.com/read-2624014.html

最新回复(0)