gpt4 book ai didi

python - 通过 Python 请求重用 Django 中的连接

转载 作者:太空宇宙 更新时间:2023-11-03 11:01:56 28 4
gpt4 key购买 nike

重用Python Requests的正确方法是什么? Django 中跨多个 HTTP 请求的连接。这就是我目前正在做的事情:

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 View 中被调用。用户在单独的 HTTP 请求中调用这些 View 。我的问题是:Does Python Requests automatically reuse the same connections (通过 urllib3 连接池)?

或者我必须先创建一个 Requests session 对象才能使用吗?

s = requests.Session()  

def do_request(data):
return s.get('http://foo.bar/', data=data, auth=('user', 'pass'), timeout=4).text

如果是这样, session 对象是否必须在全局范围内创建,还是应该在函数内部创建?

def do_request(data):
s = requests.Session()
return s.get('http://foo.bar/', data=data, auth=('user', 'pass'), timeout=4).text

我可以同时有多个 HTTP 请求,所以解决方案需要线程安全......我是连接池的新手,所以我真的不确定,请求文档在这里也不是那么广泛.

最佳答案

创建一个 session ,通过函数传递并返回来保持 session 的维护,或者在全局级别或类级别创建 session 对象,以便在引用时保持最新状态。它会像魅力一样发挥作用。

关于python - 通过 Python 请求重用 Django 中的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30748200/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com