Sim*_*ger 5 python django connection-pooling keep-alive python-requests
在 Django 中跨多个 HTTP 请求重用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})
...
Run Code Online (Sandbox Code Playgroud)
所以,我有一个函数可以发出请求。该函数在各种 Django 视图中调用。用户在单独的 HTTP 请求中调用视图。我的问题是:Python 请求是否自动重用相同的连接(通过 urllib3 连接池)?
或者我必须首先创建一个请求会话对象才能使用?
s = requests.Session()
def do_request(data):
return s.get('http://foo.bar/', data=data, auth=('user', 'pass'), timeout=4).text
Run Code Online (Sandbox Code Playgroud)
如果是这样,会话对象是否必须在全局范围内创建,还是应该在函数内部?
def do_request(data):
s = requests.Session()
return s.get('http://foo.bar/', data=data, auth=('user', 'pass'), timeout=4).text
Run Code Online (Sandbox Code Playgroud)
我可以同时有多个 HTTP 请求,因此解决方案需要线程安全...我是连接池的新手,所以我真的不确定,并且这里的请求文档并不广泛。
| 归档时间: |
|
| 查看次数: |
2319 次 |
| 最近记录: |