18

这是我的代码:

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”。如何 ?

4

4 回答 4

27

RequestHandler您可以使用以下方式获取当前网址self.request.uri

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write(self.request.uri)
于 2013-05-19T18:18:39.467 回答
5

我想你要找的是self.request.path. 查看可用于 的功能HTTPServerRequest

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write(self.request.path)
于 2016-07-01T05:00:26.363 回答
2

如果self.request.full_url()要访问请求的整个 URL(协议 + 子域 + 域 + 路径 + 查询),请使用。它将返回,例如:https://myserver.com/profiles?id=115.

如果self.request.uri要访问 URI(路径 + 查询),请使用。它将给出,例如:/profiles?id=115.

self.request.path如果您只想访问没有查询字符串的路径,请使用。它将给出,例如:/profiles.

于 2020-05-11T16:55:58.937 回答
0

没有方法可以让您访问完整的 URL,但您可以使用协议、主机和 uri 来构建它,例如

url = '{}://{}{}'.format(self.request.protocol,self.request.host,self.request.uri)
于 2019-07-19T09:52:45.473 回答