Автоматическое обновление данных базы данных HTML в Django - Ajax?
У меня есть Django-сервер, который размещен локально и отображает данные датчиков из базы данных MySQL. Эти данные отображаются на странице instruments.html через переменные {{qs.value}}, которые поступают из views.py, models.py и URLs.py. Страница views.py выглядит следующим образом:
from django.http import HttpResponse
from django.shortcuts import redirect, render
from .models import Sensorresult
def db(request):
qs = Sensorresult.objects.using('Vision').get(sensorresult='1')
return render(request, 'authenticate/instruments.html',{'qs':qs})
Проблема заключается в том, что я хочу, чтобы информация базы данных обновлялась на html каждую секунду, тогда как в настоящее время она обновляется только при обновлении страницы. Я знаю, что могу разместить строку javascript в верхней части страницы и заставить всю веб-страницу постоянно обновляться, но я хочу, чтобы обновлялись только значения базы данных. Есть ли у кого-нибудь предложения, как это сделать?
После гугления наткнулся на Ajax, однако это то, в чем у меня нет опыта, и я не уверен, как мой код будет отредактирован для этого?
Большое спасибо
Вместо того чтобы напрямую использовать полученные данные в HTML, вы можете попробовать получить их в javascript.
Если вы когда-нибудь создавали часы с помощью javascript, они не перезагружают всю страницу, но при этом обновляют время. Вы можете использовать тот же способ для обновления полученных данных в HTML.
Вы можете рассмотреть возможность использования htmx.
Очень простая библиотека, которая убирает сложности JavaScript для обновления частей веб-страницы вместо полной перезагрузки страницы и позволяет сделать большую часть работы в html.
В их документации конкретно упоминается polling для обновления определенной части страницы, что, похоже, является именно тем, чего вы пытаетесь достичь.