python tornado获取请求网址

时间:2013-05-19 17:59:46

标签: python url get tornado

这是我的代码:

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 个答案:

答案 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)