Django - Асинхронные представления (api запросы) и AJAX

Я использовал этот код здесь, чтобы ускорить api ответ IEX. iex_var2 и iex_var1 и результат импортируются. У меня также есть форма для пользователя, где он ищет тикер (input_ticker) Ответ работает отлично и очень быстро.

async def api_test2(request):
        start_time = time.time()
        async with aiohttp.ClientSession() as session:
        input_ticker = request.POST['ticker']
        for i in iex_var2:
            var2 = i
            url = f"{iex_var1}{input_ticker}{var2}"
            async with session.get(url) as res:
                url = await res.json()
                result.append(url)
                total = time.time() - start_time
                print(total)
    return HttpResponse(result)

Теперь у меня есть два важных вопроса о моем коде.

  • Как мне избежать того, что при каждой перезагрузке код запускается снова? Когда я перезагружаю HttpResponse, представление запускается снова, и так далее в "result" дублируются данные. Могу ли я использовать здесь Cache? Я все еще новичок, возможно, я что-то путаю?

  • Мой вопрос №2 - как вывести этот результат в шаблон? Render не работает вместе с async view, поэтому я думаю, что AJAX - это решение, но у меня нет опыта работы ни с JS, ни с AJAX. Поэтому я не уверен, как я могу связать "результат" моего представления с шаблоном. Я также пытался использовать async_to_sync, но этот подход не сработал, потому что я не смог передать "результат" в функцию синхронизации

    .

  • Я очень благодарен за любую помощь. Даже за совет в случае api запросов и стоит ли мне вообще использовать эти async представления вместо Threadpool или чего-то синхронного

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