2
У меня есть приложение Flask, работающее на Heroku, которое подключается к API Карт Google во время запроса. Что-то вроде этого:Глобальное подключение к стороннему api Flask
client = geocoders.GoogleV3(
client_id=self.config['GM_CLIENT_ID'],
secret_key=self.config['GM_SECRET_KEY']
)
client.do_geocoding(...)
Сейчас я создаю нового клиента для каждого запроса. Как можно подключиться к нескольким запросам?
Не можете ли вы создать этого клиента после запуска приложения и просто передать объект-клиент, чтобы он мог использоваться остальной частью вашего приложения? – idjaw
Могу ли я? На самом деле приложение действительно очень сложно, поэтому я думаю, что мне нужно будет сделать клиентом глобальную переменную, чтобы заставить это работать. Но похоже, что глобальная вариабельность - плохая идея в колбе? (http://stackoverflow.com/questions/32815451/are-global-variables-thread-safe-in-flask) Возможно, в этом случае все нормально, потому что клиент доступен только для чтения? Если я чувствую себя смущенным, это потому, что я ... –
Общая практика проектирования, глобальные блоки действительно никогда не используются. Тем не менее, я понятия не имею, как ваш текущий код структурирован, чтобы узнать, какой кошмар рефакторинга вы можете иметь здесь :). Если фрагмент кода, который вы показываете, находится в методе, возможно, вы можете настроить инициализацию клиента в этом классе, поэтому вы можете просто изменить свои клиентские вызовы, чтобы использовать клиент вашего экземпляра -> self.client. – idjaw