GAE: код Python, чтобы проверить, нахожусь ли я на dev_appserver или развернут в appspot
Мое приложение GAE использует OAUTH 2. В настоящее время я вручную переключаю redirect_uri
между http://localhost:8081/oauth2callback
а также myapp.appspot.com/oauth2callback
в зависимости от того, делать ли локальное тестирование с dev_appserver
или если я разверну на appspot.com.
Есть ли какой-то код (например, используя os.environ
) что я могу использовать для автоматизации этого?
Спасибо!
1 ответ
Вы можете получить ваше текущее доменное имя с os.environ['SERVER_NAME']
,
Вы также можете проверить это по названию версии:
import os
if os.environ['APPLICATION_ID'].startswith('dev'):
pass # it's localhost
else:
pass # it's uploaded on gae
Будет лучше использовать self.uri_for('callback-uri-name', _full=True)
для построения обратного вызова URI, если вы используете webapp2.
У вас есть что-то подобное в ваших маршрутах.
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