Py学习  »  Django

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

Srikanth • 5 年前 • 2270 次点击  

在我的Django项目中,我必须实现对外部API的异步HTTP请求,并获得结果。我发现通过使用姜戈频道和芹菜我们可以做到。Tornado SimpleAsynchronicHTTP包中有一个包Django中有任何内容。请问,有人能建议哪种方法更好地实现对外部API的异步HTTP调用并在Django中获取数据?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38712
 
2270 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Anurag
Reply   •   1 楼
Anurag    6 年前

请求是一个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()