问题 如何使用Python / GAE获取当前域名?


目前的网址是

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 返回整个路径。


8858
2018-04-30 13:31


起源

为什么不使用相对URL? <a href="/somethingelse"> 将在您的网站上的任何位置工作到同一主机上的相应URL。 - Wooble
我正在创建RSS。相对URL在那里不起作用。 - LA_


答案:


self.request.host_url


13
2018-04-30 13:40



谢谢,它运作良好。我发现的另一个选择是使用 self.request.environ['HTTP_HOST']。 - LA_


我想你想要的 app_identity.get_default_version_hostname()

如果应用程序是从自定义域提供的,则可能需要   检索整个主机名组件。你可以使用   app_identity.get_default_version_hostname()方法。

这段代码: logging.info(app_identity.get_default_version_hostname())

版画 localhost:8080 在开发服务器上。


1
2018-06-06 06:57





如果 self.request.path 返回整个路径,你不能只做:

import urlparse

def get_domain(url):
    return urlparse.urlparse(url).netloc
>>> get_domain(“http://myapp.appspot.com/something/”)
'myapp.appspot.com'

0
2018-04-30 13:40



它返回空字符串(至少在本地使用时) - LA_
需要有一个 // 在域名之前,否则假定它是相对URL。 - Acorn