如何用Python/GAE获取当前域名?
当前的 URL 是
http://myapp.appspot.com/something/<user-id>
或者
http://127.0.0.1:8080/something/<user-id>
在我的 Python 代码中,如何获取 http://myapp.appspot.com/
或 http://127.0.0.1:8080/
呢?这对于动态生成链接是必要的,比如说,生成 http://myapp.appspot.com/somethingelse
这样的链接。
self.request.path
会返回整个路径。
3 个回答
0
如果 self.request.path
返回的是完整的路径,那你是不是可以直接这样做:
import urlparse
def get_domain(url):
return urlparse.urlparse(url).netloc
>>> get_domain("http://myapp.appspot.com/something/") 'myapp.appspot.com'
1
我觉得你想要的是 app_identity.get_default_version_hostname()。
如果你的应用是通过一个自定义域名提供服务的,可能需要获取完整的主机名部分。你可以使用
app_identity.get_default_version_hostname()
这个方法来做到这一点。
这段代码:
logging.info(app_identity.get_default_version_hostname())
在开发服务器上会打印出 localhost:8080
。
15
这个链接指向的是一个关于 Python 中 WebOb 库的文档。在这里,`self.request.host_url` 是一个用来获取当前请求的主机地址和端口号的属性。简单来说,它可以告诉你用户访问的网页是在哪个地址上,比如说是 www.example.com,或者是 localhost(本地服务器)。这个信息在处理网络请求时非常有用。