使用python在Google App Engine中获取服务器URL

Gau*_*tam 13 python url google-app-engine web-applications

如何让App Engine生成当前运行的服务器的URL?

如果应用程序在开发服务器上运行,则应返回

http://localhost:8080/
Run Code Online (Sandbox Code Playgroud)

如果应用程序在Google的服务器上运行,它应该返回

http://application-name.appspot.com
Run Code Online (Sandbox Code Playgroud)

Chr*_*loe 15

您可以通过您的webapp处理程序获取用于发出当前请求的URL,self.request.url或者您可以使用self.request.environdict 将其拼凑在一起(您可以在WebOb文档上阅读- 请求从webob继承)

您不能"获取服务器的URL"本身,因为可以使用许多URL指向同一个实例.

如果您的目标只是发现您正在开发或生产,那么使用:

'Development' in os.environ['SERVER_SOFTWARE']
Run Code Online (Sandbox Code Playgroud)

  • 如果你想要协议前缀,`self.request.host`是获取当前主机名的更好方法,或者是'self.request.host_url`. (16认同)

A_P*_*ine 13

这是一个替代答案.

from google.appengine.api import app_identity
server_url = app_identity.get_default_version_hostname()
Run Code Online (Sandbox Code Playgroud)

在dev appserver上,这将显示:

本地主机:8080

并在appengine上

your_app_id.appspot.com