tornado中url传参
1.简单说明Handler执行顺序
# RequestHandler执行顺序,
# 1.先执行 initialize 初始化,
class UserrHandler(RequestHandler):
def initialize(self, status_code: int) -> None:
pass
# 2. 在执行get/post....等之前调用,一般无论如何,都要重写此方法以执行公共初始化
def prepare(self) -> None:
pass
url传参示例:
url 正则方法
参考: https://www.runoob.com/python/python-reg-expressions.html
application = tornado.web.Application(
handlers=[
(r'/index',IndexHandler),
(r'/sub/(.+)/([0-9]+)', SubjectHandler), #用正则表达式(元字符+数字)
(r'/user/(?P<name>.+)/(?P<age>[0-9]+)', UserHandler), #这样就不是按照位置来传参了,而是按照变量名来传参了
],
template_path = 'templates',
debug=True
)
Handler获取参数
# 1.方法中直接获取方法
class SubjectHandler(tornado.web.RequestHandler):
def get(self,name,age): #下面的正则按照这里的位置来定义的
self.write('name:%s<br> age:%s'%(name,age))
class UserHandler(tornado.web.RequestHandler):
def get(self,age,name):
self.write('name:%s<br> age:%s'%(name,age))
# 2. #重写RequestHandler中initialize方法
# 获取动态设置的参数(greeting,info)
class UserHandler(tornado.web.RequestHandler):
# 按照变量名传参,位置随意
def initialize(self,age,name):
self.age = age
self.name = name
def get(self, *args, **kwargs):
# `self.age` 直接调用参数
pass
发表评论