Каков правильный способ повторного использования подключений Python Requests в Django через несколько HTTP-запросов. Это то, что я делаю в настоящее время:Повторное использование соединений в Django с запросами Python
import requests
def do_request(data):
return requests.get('http://foo.bar/', data=data, timeout=4)
def my_view1(request)
req = do_request({x: 1})
...
def my_view2(request)
req = do_request({y: 2})
...
Итак, у меня есть одна функция, которая делает запрос. Эта функция вызывается в разных видах Django. Представления вызываются в отдельных HTTP-запросах пользователями. Мой вопрос: автоматически ли Python запрашивает reuse the same connections (через пул соединений urllib3)?
Или мне нужно сначала создать объект сеанса запросов для работы?
s = requests.Session()
def do_request(data):
return s.get('http://foo.bar/', data=data, auth=('user', 'pass'), timeout=4).text
И если да, должен ли быть создан объект сеанса в глобальной области видимости или он должен находиться внутри функции?
def do_request(data):
s = requests.Session()
return s.get('http://foo.bar/', data=data, auth=('user', 'pass'), timeout=4).text
я могу иметь несколько запросов HTTP в то же время, поэтому решение должно электронной поточно ... Я новичок в пул соединений, так что я на самом деле не уверен, и просит документы Арен» Это обширно здесь.
Таким образом, я создаю отдельные запросы для каждого вызова функции. Итак, второй блок кода в моем вопросе - это фактически решение (s определено в глобальной области)? Конечно ... Я просто не знаю, как отлаживать/отслеживать это. –
Да, вторым кодовым блоком является решение. –