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'].
获取当前域名
您也可以通过版本名称查看:
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/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?