tornado 入门之(http请求行为方法-路由匹配-切入点函数)【3】

tornado 入门之(http请求行为方法-路由匹配-切入点函数)【3】


http请求行为方法

主要:GetPost两种请求方式,区别如下图
在这里插入图片描述
在这里插入图片描述
在http请求中增加参数name=仙仙,在服务器中获取请求参数方法
在这里插入图片描述
在这里插入图片描述
self.get_argument() get和post都通用

class MainHandler(tornado.web.RequestHandler):def get(self):name = self.get_argument('name')print(name)# name = self.get_query_argument('name')self.write("Hello Python!--Get")def post(self):name = self.get_argument('name')print(name)# name = self.get_body_argument('name')self.write("Hello Python!--Post")

cookies操作

self.set_cookie('token1','123456',expires_days=1)# 给 token1 添加cookies ,1天后自动清除
self.clear_cookie('token1')	# 清除 token1 的cookies

路由匹配规则

客户端访问的http根据路由匹配相应方法

http://100.71.10.140:8080/
http://100.71.10.140:8080/res

import tornado.web  # web框架模块
import tornado.ioloop  # 核心IO循环模块,封装了linux的epoll和BSD的kqueue,是tornado高效的基础
import config
from tornado.options import define,optionsclass MainHandler(tornado.web.RequestHandler):def get(self):self.write("Hello Python!--Get")# self.redirect('/') # 跳转def post(self):self.write("Hello Python!--Post")class ResHandler(tornado.web.RequestHandler):def get(self):self.write("

你好呀!

"
)def make_app():return tornado.web.Application([(r"/", MainHandler),(r"/res", ResHandler)])if __name__ == "__main__":app = make_app()app.listen(config.options["port"])

通过 self.redirect(’/’) 可以实现路由的跳转

http请求的路由可以用正则表达式匹配

# 路由匹配规则
import tornado.web  # web框架模块
import tornado.ioloop  # 核心IO循环模块,封装了linux的epoll和BSD的kqueue,是tornado高效的基础
import configclass IndexHandler(tornado.web.RequestHandler):def get(self):self.write("Hello Python!")class DayHandler(tornado.web.RequestHandler):def get(self,day):self.write("%s" %day)class Day1Handler(tornado.web.RequestHandler):def get(self,day,month,year):self.write("%s年%s月%s日" %(year,month,day))class Day2Handler(tornado.web.RequestHandler):def get(self,day,month,year):self.write("%s年%s月%s日" %(year,month,day))if __name__ == "__main__":	# Handlers定义路由匹配地址app = tornado.web.Application([(r'/', IndexHandler),(r'/day/(\d{4})', DayHandler),(r'/day1/(\d{4})/(\d{2})/(\d{2})', Day1Handler),(r'/day2/(?P\d{4})/(?P\d{2})/(?P\d{2})', Day2Handler)])app.listen(config.options["port"])tornado.ioloop.IOLoop.current().start()

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
两种路由获取:一个是直接按顺序传参;后者定义参数,再进行赋值


切入点函数顺序
class ResHandler(tornado.web.RequestHandler):def initialize(self):# 初始时执行print("initialize")def prepare(self):   # 预先执行print("prepare")def get(self):		print("get")self.write("get")def on_finish(self):# 结束时执行print("on_finish")

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部