这是我的代码:
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write(self.request.url)
def main():
settings = {"template_path": "html","static_path": "static"}
tornado.options.parse_command_line()
application = tornado.web.Application([
(r"/story/page1", MainHandler),
],**settings)
我想获得字符串" / story / page1"。怎么样?
答案 0 :(得分:23)
您可以使用self.request.uri
RequestHandler
内的当前网址
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write(self.request.uri)
答案 1 :(得分:3)
我认为你要找的是self.request.path
。查看HTTPServerRequest
可用的函数。
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write(self.request.path)
答案 2 :(得分:1)
如果要访问请求的整个URL(协议+子域+域+路径+查询),请使用 self.request.full_url()
。它将返回,例如:https://myserver.com/profiles?id=115
。
如果要访问URI(路径+查询),请使用 self.request.uri
。例如:/profiles?id=115
。
如果只想访问没有查询字符串的路径,请使用 self.request.path
。例如:/profiles
。
答案 3 :(得分:0)
没有允许您访问完整URL的方法,但是您可以使用协议,主机和uri来构造它,例如
url = '{}://{}{}'.format(self.request.protocol,self.request.host,self.request.uri)