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

如何解决使用python来获取Google App Engine中的服务器URL

| 如何让App Engine生成当前正在运行的服务器的URL? 如果应用程序在开发服务器上运行,则应返回
http://localhost:8080/
如果该应用程序正在Google的服务器上运行,则应返回
http://application-name.appspot.com
    

解决方法

        您可以通过
self.request.url
从webapp处理程序中获取用于发出当前请求的URL,也可以使用
self.request.environ
dict将其组合在一起(您可以在WebOb文档上阅读-请求继承自webob) 您无法“获取服务器的网址”本身,因为可以使用许多网址来指向同一实例。 如果您的目的只是发现您是否正在开发或生产中,请使用:
\'Development\' in os.environ[\'SERVER_SOFTWARE\']
    ,        这是一个替代答案。
from google.appengine.api import app_identity
server_url = app_identity.get_default_version_hostname()
在开发应用服务器上,这将显示:   本地主机:8080 并在appengine上   your_app_id.appspot.com     ,        如果您使用webapp2作为框架,则很可能已经在Web应用程序中使用了URI路由。 http://webapp2.readthedocs.io/en/latest/guide/routing.html
app = webapp2.WSGIApplication([
    webapp2.Route(\'/\',handler=HomeHandler,name=\'home\'),])
使用
webapp2.uri_for()
构建URI时,只需传递
_full=True
属性即可根据当前运行时环境生成包含当前域,端口和协议的绝对URI。
uri = uri_for(\'home\')
# /

uri = uri_for(\'home\',_full=True)
# http://localhost:8080/
# http://application-name.appspot.com/
# https://application-name.appspot.com/
# http://your-custom-domain.com/
此函数可以在您的Python代码中使用,也可以直接从模板引擎中使用(如果您注册了它)-非常方便。 检查API参考中的webapp2.Router.build(),以获取有关用于构建URI的参数的完整说明。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?