GAE自请求环境和服务器主机
我想获取我这个应用程序运行的服务器的基本网址,也就是主机名。
简单来说,我想要的结果是像这样的:
wsgiref.util.application_uri(self.request.environ)
但是它返回的是路径信息,我并不想要这个。也许我漏掉了什么,但连这篇文章都说路径信息应该被省略。
http://docs.python.org/library/wsgiref.htmlhttp://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
来获取带有协议的主机名,等等。