GAE: python code to check if i'm on dev_appserver or deployed to appspot
 
我的 GAE 应用程序使用 OAUTH 2。目前,我在 http://localhost:8081/oauth2callback 和 myapp.appspot.com/oauth2callback 之间手动切换 redirect_uri,具体取决于是使用 dev_appserver 进行本地测试还是部署到 appspot.com。 
是否有一些代码(例如使用 os.environ)我可以用来自动执行此操作?
谢谢!
您可以使用 os.environ['SERVER_NAME'].
 获取当前域名
您也可以通过版本名称查看:
| 12
 3
 4
 5
 
 | import osif 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 会更好。
你的路线中有这样的东西。
| 12
 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/callback 或 http://app-id.appspot.com/oauth/callback 的东西。
更多信息:http://webapp-improved.appspot.com/guide/routing.html#building-uris
		
		
- 谢谢,这成功了。您能否详细说明使用 self.uri_for('callback-uri-name', _full=True) 构建回调 uri?或者提供更多信息的链接?我使用 gdata 客户端(用于 Google Contacts API),它只是将 uri 作为输入参数。
- 
谢谢!一条评论:我不得不删除处理程序周围的引号,即 app = webapp2.WSGIApplication([     webapp2.Route(r'/oauth/callback', handler=oauth.CallbackHandler, name='callback-uri-name'), ])
- 
我如何检查是否使用 JAVA?