关于 google app engine:GAE: python code to check if i\\’m on dev_appserver or deploy to appspot

GAE: python code to check if i'm on dev_appserver or deployed to appspot

我的 GAE 应用程序使用 OAUTH 2。目前,我在 http://localhost:8081/oauth2callbackmyapp.appspot.com/oauth2callback 之间手动切换 redirect_uri,具体取决于是使用 dev_appserver 进行本地测试还是部署到 appspot.com。

是否有一些代码(例如使用 os.environ)我可以用来自动执行此操作?

谢谢!


您可以使用 os.environ['SERVER_NAME'].

获取当前域名

您也可以通过版本名称查看:

1
2
3
4
5
import os
if os.environ['APPLICATION_ID'].startswith('dev'):
  pass  # it's localhost
else:
  pass  # it's uploaded on gae

如果你使用 webapp2,使用 self.uri_for('callback-uri-name', _full=True) 构建回调 uri 会更好。

你的路线中有这样的东西。

1
2
3
app = webapp2.WSGIApplication([
    webapp2.Route(r'/oauth/callback', handler='oauth.CallbackHandler', name='callback-uri-name'),
])

然后,如果你调用 self.uri_for('callback-uri-name', _full=True),你会得到类似 http://localhost:8080/oauth/callbackhttp://app-id.appspot.com/oauth/callback 的东西。

更多信息:http://webapp-improved.appspot.com/guide/routing.html#building-uris