我使用以下Python代码段来获取网址:
address = self.request.url
这给了我看起来像这样的网址:
http://domain.tld
或
http://sub.domain.tld
但我的网址如下:
http://sub.sub.domain.tld
在这种情况下,代码根本不会返回URL。最后,我必须得到第一个' sub'来自URL的域。但是,如果网址有两个子域,则代码无法正常工作,我无法继续。
有谁知道如何解决这个问题?
答案 0 :(得分:1)
如果你对普通的python脚本没问题,
import urlparse
address = urlparse("http://sub.sub.domain.tld")
print address.netloc
print address.path
print address.scheme
答案 1 :(得分:0)
根据提供的信息,我本身无法给出答案。但我可以提供一些故障排除信息。如果request.url为空,那么可能还有另一个原因是它没有被填充。
我知道这是一个GAE请求对象。哪个继承自WebOb。
请求对象具有许多其他属性。尝试打印所有内容并查看它们包含的内容。
print self.request.host
print self.request.host_url
print self.request.scheme # should be 'http'
如果这些都是空的,那么听起来好像没有正确创建请求对象。这可能是你的根本问题。
答案 2 :(得分:0)
self.request.url来自哪里似乎没有答案。它让我想起了谷歌应用程序引擎,所以在你使用GAE的可能性很大,你可以使用
self.request.host_url
获取主机网址或
self.request.path_url
获取没有查询参数的网址。
来源:http://docs.webob.org/en/latest/reference.html
如果这与你提出的要求无关,我道歉。