1

我正在使用以下 Python 片段来获取 URL:

address = self.request.url

这给了我如下所示的 URL:

http://domain.tld

或者

http://sub.domain.tld

但我的网址如下所示:

http://sub.sub.domain.tld

在这种情况下,代码根本不返回 URL。最后,我必须从 URL 中获取第一个“子”域。但是,如果 URL 有两个子域时代码不起作用,我将无法继续。

有谁知道如何解决这个问题?

4

3 回答 3

1

如果你对普通的 python 脚本没问题,

import urlparse
address = urlparse("http://sub.sub.domain.tld")

print address.netloc
print address.path
print address.scheme
于 2012-07-06T07:30:47.720 回答
0

从提供的信息来看,我本身无法给你答案。但我可以提供一些故障排除信息。如果 request.url 为空,那么可能还有另一个原因是它没有被填充。

我知道这是一个 GAE 请求对象。继承自WebOb。

请求对象具有许多其他属性。尝试将它们全部打印出来并查看它们包含的内容。

print self.request.host
print self.request.host_url
print self.request.scheme   # should be 'http'

如果这些都是空的,那么听起来请求对象没有被正确创建。那可能是你的根本问题。

于 2012-07-06T07:29:17.460 回答
0

self.request.url 来自什么似乎没有答案。它让我想起了谷歌应用引擎,所以如果你使用 GAE,你可以使用

self.request.host_url 

获取主机网址或

self.request.path_url

获取不带查询参数的 url。

来源:http ://docs.webob.org/en/latest/reference.html

如果这与您的要求无关,我深表歉意。

于 2012-07-06T07:38:42.957 回答