在我的Django项目中,我必须对外部API实现异步HTTP请求并获取结果。我发现通过使用Django频道和celery,我们可以做到。龙卷风simpleAsynchronousHttp软件包中有一个软件包,Django中有任何软件包。请问有人可以建议哪种方法是对外部API进行异步HTTP调用并在Django中获取数据的更好方法吗?
答案 0 :(得分:0)
Requests是一个python软件包,它使得执行HTTP请求变得非常容易。为了异步执行此操作,可以利用Celery。对于芹菜设置,您可以遵循docs。您可以将redis用作经纪人。
在应用内创建任务。
# proj/tasks.py
from __future__ import absolute_import, unicode_literals
from .celery import app
import requests # https://github.com/requests/requests
@app.task
def call_api():
r = requests.get('https://api.github.com/events')
在文件中要调用该函数的任何位置,例如在您看来
# proj/views.py
from tasks import call_api
call_api.delay()