GAE自请求环境和服务器主机

0 投票
2 回答
1785 浏览
提问于 2025-04-16 03:05

我想获取我这个应用程序运行的服务器的基本网址,也就是主机名。

简单来说,我想要的结果是像这样的:

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

但是它返回的是路径信息,我并不想要这个。也许我漏掉了什么,但连这篇文章都说路径信息应该被省略。

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 个回答

1

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

这个值里不会包含协议部分,但从你得到的值中提取出来应该很简单:

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

或者...

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

请求对象是一个 Webob 请求对象。也就是说,你可以通过 self.request.host 来获取主机名,通过 self.request.host_url 来获取带有协议的主机名,等等。

撰写回答