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

Другие вопросы по тегам