龙卷风:从部分URL创建完整的URL

3

我在想在Tornado中是否有一种函数或其他方法可以将部分URL转换为完整的URI。

假设我有一个CSS文件在/static/css/thingy.css,我的服务器通过HTTPS可达192.168.1.4:8000。是否有一种函数可以实现以下操作:

function_something("/static/css/thingy.css")

返回结果:"https://192.168.1.4:8000/static/css/thingy.css"

这个问题似乎很容易解决(我猜),但是,首先,我是Tornado的初学者,而且我在Google上也没有找到答案。

提前谢谢你。

2个回答

3

好的...我找到了一些不如我想象的那么直接的东西,但是通过访问Tornado HTTPRequest,您可以获取有关protocolhost等信息...所以我可以这样做:

url = ("%s://%s/static/css/thingy.css" %
          (self.request.protocol,
          self.request.host,)
      )

0
如果您想在Python文件中执行此操作,那么简单的加号就可以为您完成任务。在Python中连接字符串的方法如下:
string1 + string2

对于你来说,它将是这样的

"https://192.168.1.4:8000" + "/static/css/thingy.css"

但是当然你已经有这两个字符串存在变量中了,假设它们被称为“host”和“place”,那么代码就应该是:

 url = host + place

然后url变量将包含您的完整路径。


嗯...我原本期望有更自动化的方式。比如说... Django 的 build_absolute_uri 方法。 - Savir
你也可以使用urlparse模块中的urljoin(请参见http://docs.python.org/2/library/urlparse.html#urlparse.urljoin),但这都是标准的Python。 - ojs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接