GAE:python代码,用于检查我是在dev_appserver上还是部署到appspot

时间:2013-04-01 10:27:12

标签: python google-app-engine oauth dev-appserver

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

是否有一些代码(例如使用{{1}})可用于自动执行此操作?

谢谢!

1 个答案:

答案 0 :(得分:6)

您可以使用os.environ['SERVER_NAME']获取当前域名。

您还可以通过版本名称进行检查:

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。

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

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