Из проекта Django добиться асинхронного запроса к внешнему API? - PullRequest
0 голосов
/ 04 сентября 2018

В моем проекте Django я должен реализовать асинхронный HTTP-запрос к внешнему API и получить результат. Я обнаружил, что с помощью каналов Django и сельдерея мы можем это сделать. В пакете tornado simpleAsynchronousHttp есть пакет, есть что-нибудь в Django. пожалуйста, кто-нибудь может предложить, какой лучший способ добиться асинхронного HTTP-вызова к внешнему API и получить данные в Django?

1 Ответ

0 голосов
/ 04 сентября 2018

Requests - это пакет Python, который позволяет довольно легко выполнять HTTP-запросы. Чтобы сделать это асинхронно, вы можете использовать Сельдерей . Для настройки сельдерея вы можете следовать документам . Вы можете использовать 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...