Как вызвать несколько API и отобразить ответ всех этих API в шаблоне в django

Я пробовал выводить ответ нескольких API в одном шаблоне, но поскольку в пути можно передать только одно представление, я не могу придумать, что можно сделать

Я попытался сохранить две функции для вызова API внутри класса, но получил ошибку GET 405

Чтобы вызвать несколько API и отобразить ответ всех этих API в шаблоне в Django, вы можете создать функцию представления, которая выполняет вызовы API и передает данные ответа шаблону в качестве контекста.

Вот пример того, как это можно сделать, используя модуль requests для выполнения вызовов API:

from django.shortcuts import render
import requests

def view_function(request):
    # Make the first API call
    response1 = requests.get('https://api.example.com/endpoint1')
    data1 = response1.json()

    # Make the second API call
    response2 = requests.get('https://api.example.com/endpoint2')
    data2 = response2.json()

    # Make the third API call
    response3 = requests.get('https://api.example.com/endpoint3')
    data3 = response3.json()

    # Render the template and pass the API response data as context
    return render(request, 'template.html', {
        'data1': data1,
        'data2': data2,
        'data3': data3,
    })

В данном примере view_function - это функция представления, которая выполняет вызовы API и отображает шаблон. Функция requests.get используется для выполнения вызовов API, а метод response.json используется для разбора ответа JSON от API. Функция render используется для рендеринга шаблона и передачи данных ответа API в качестве контекста шаблону.

В шаблоне вы можете получить доступ к данным ответа API с помощью контекстных переменных, которые вы передали в шаблон. Например, вы можете получить доступ к данным первого вызова API, используя {{ data1 }}, и к данным второго вызова API, используя {{ data2 }}.

Прежде всего, я не могу ничего сказать, не видя кода, но я думаю, что вы можете создать словарь и передать его в качестве контекста в ответ. Сохраните несколько api и передайте их в словарь

mydict = {
   "api1":api_data,
   "api2":api_data,
}

передайте это как контекст в ответ

Вернуться на верх