URL反向解析
反向解析就是通过一个页面的标签来找到这个页面对应的地址
首先修改一下application.py文件:
由于反向解析方法有个name参数,故这里不使用一般的路由元祖,而是使用tornado.web.url函数来生成路由信息:
from views.index import IndexHandler,HomeHandler,ReverseDomainHandler
import tornado.web
import config
class Application(tornado.web.Application):
def __init__(self):
handlers=[
(r'/',IndexHandler),
(r'/home',HomeHandler),
tornado.web.url(r'/reversedomain',ReverseDomainHandler,
{"word1":"test1","word2":"test2"},name="RD")
]
super(Application,self).__init__(handlers,**config.settings)
核心句是:
tornado.web.url(r'/reversedomain',ReverseDomainHandler,
{"word1":"test1","word2":"test2"},name="RD")
r’/reversedomain’:URL域名地址
ReverseDomainHandler:页面处理类
{“word1”:“test1”,“word2”:“test2”}:传入ReverseDomainHandler的参数
name=“RD”:这个页面的名字(标签)
然后写一下我们的ReverseDomainHandler类:
from tornado.web import RequestHandler
import config
import os
class IndexHandler(RequestHandler):
def get(self):
url=self.reverse_url("RD")
self.write("<a href='%s'>reverse domain page</a>"%(url))
class HomeHandler(RequestHandler):
def get(self):
self.write("test:Home")
class ReverseDomainHandler(RequestHandler):
def initialize(self,word1,word2):
self.word1=word1
self.word2=word2
def get(self, *args, **kwargs):
print(self.word1,self.word2)
self.write("reverse domain test")
这个代码中,URL根目录有个“reverse domain page”的超链接,点击这个超链接,就可以通过反向解析进入到reversedomain的页面,并显示“reverse domain test”
运行结果:
点击链接后: