GAE self.request.environ和服务器主机

时间:2010-08-20 19:36:24

标签: python google-app-engine wsgi

我正在尝试获取运行我的appengine应用程序的服务器的基本URL(主机名)。

就像

那样
wsgiref.util.application_uri(self.request.environ)

然而它正在返回我不想要的PATH_INFO。也许我错过了一些东西,但即使这篇文章也说明了路径信息应该省略。 http://docs.python.org/library/wsgiref.html

http://9.latest.my-app.appspot.com

基本上与我想要检索的内容一致。相反,它正在返回

http://9.latest.my-app.appspot.com/my/requested/path

2 个答案:

答案 0 :(得分:5)

请求对象是Webob请求对象。因此,您可以从self.request.host获取主机名,使用self.request.host_url的协议获取主机名,依此类推。

答案 1 :(得分:1)

您可以在os.environ['HTTP_HOST']中找到主机名。

这不包括协议,但应该很容易从你得到的价值中解析:

base = '/'.join(url.split('/')[:3])

...或

import urlparse
url = urlparse.urlparse(url)
base = "%s://%s" % (url.scheme, url.hostname)