从Django项目实现对外部API的异步请求?

时间:2018-09-04 06:42:01

标签: python django asynchronous

在我的Django项目中,我必须对外部API实现异步HTTP请求并获取结果。我发现通过使用Django频道和celery,我们可以做到。龙卷风simpleAsynchronousHttp软件包中有一个软件包,Django中有任何软件包。请问有人可以建议哪种方法是对外部API进行异步HTTP调用并在Django中获取数据的更好方法吗?

1 个答案:

答案 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()