Вам следует переосмыслить, как осуществляется доступ к данным.
Во-первых, ваши данные должны храниться в безопасном месте. Например, база данных (по умолчанию Sqlite довольно прост). Создайте модель, а затем просто пусть ваша фоновая задача обновит базу данных по мере необходимости. очень полезно для этого). Таким образом, клиент может запросить этот адрес и получить в ответ данные JSON.
Во-вторых, асинхронно запустить сценарий JavaScript для вызова указанного выше URI и обновления элементов на экране по мере необходимости.
Таким образом, пользователь может оставаться на странице и обновлять ее без необходимости перерисовывать всю страницу каждые 10 секунд.
Обратите внимание, что код не завершен, но чтобы дать основную идею c, вам следует не использовать его как есть (скорее всего, он потерпит неудачу)
views.py
from django.shortcuts import render
from django.http import JsonResponse
from django.forms.models import model_to_dict
def index(request):
return render(request, "index.html")
def data(request):
query = DataPoints.objects.all()
datapoints= []
for datapoint in query:
datapoints.append(model_to_dict(datapoint ))
data = {
'datapoints' : datapoints
}
return JsonResponse(data, safe=False)
В индексе. html, иметь скрипт
function fetch_data() {
fetch('youraddress.com/data') //Fetch data from the address
.then(response => response.json()) //get the JSON section from the response
.then( updatePage(data) ); //Here you do whatever you need to update then page with the data
.then(setTimeout(fetch_data(), 10000)); //Finally, set timeout for 10 seconds and call function again
}
Теперь вам нужно вызвать fetch_data только один раз после загрузки страницы, и он будет каждые 10 секунд