类似AJAX的非阻塞异步Python请求
我看了很多问题和答案,但没有一个对我有用。 有没有办法在Python中实现类似AJAX的功能 假设您有以下设置:类似AJAX的非阻塞异步Python请求,python,asynchronous,python-requests,Python,Asynchronous,Python Requests,我看了很多问题和答案,但没有一个对我有用。 有没有办法在Python中实现类似AJAX的功能 假设您有以下设置: url = "http://httpbin.org/delay/5" print(requests.get(url)) foo() 由于requests.get会阻止代码执行,foo()在获得服务器响应之前不会触发 例如,在Javascript中,脚本继续工作: var requests = { get: function(url, callback) {
url = "http://httpbin.org/delay/5"
print(requests.get(url))
foo()
由于requests.get
会阻止代码执行,foo()
在获得服务器响应之前不会触发
例如,在Javascript中,脚本继续工作:
var requests = {
get: function(url, callback) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
callback(this);
}
};
xhttp.open("GET", url, true);
xhttp.send();
}
}
function response_goes_through_here(r) {
console.log(r.responseText);
}
var url = "http://httpbin.org/delay/5"
requests.get(url, response_goes_through_here)
foo()
我尝试了
grequests
,但它仍然挂起,直到整个队列完成。如果您能够使用Python 3,请查看。它允许您生成和处理异步请求,如:
async with aiohttp.ClientSession() as session:
async with session.get('https://api.github.com/events') as resp:
print(resp.status)
print(await resp.text()
但是它会阻塞线程吗?我看到的大多数示例都会在收到响应之前停止代码执行。