@Gourii

Как настроить автоматическое обновление данных в шаблоне Django с помощью Ajax?

Здравствуйте!

Пытаюсь разобраться с автоматическим обновлением данных на тестовом сайте Django. Почитал информацию по Ajax и вот что я смог придумать в качестве тестового примера.

test_update.html

<html>
<head>
    <title>Test Update Data</title>
    <script type="text/javascript">
    $(function getnewdata(){
    $.ajax({
        url: '*.*.*.*:8000/test',
        type: 'get',
        success: function(data) {
            alert(data);
        }
    });
    })
    $(document).ready(function(){
     setInterval(getnewdata,1000);
    });
    </script>
</head>
<body>
    <p>{{ mfree }}</p>
    <p>{{ tfree }}</p>
</body>
</html>


Кусок views.py

def test(request):
    tmem = {}
    tmem["mfree"] = bytes2human(psutil.virtual_memory()[4])
    tmem["tfree"] = str(datetime.datetime.now())
    return render(request, 'test_update.html', tmem)


Тестовая страница открывается и данные отображаются, НО не работает автоматическое обновление данных.

5fc8a1be21f74790676614.png

Подскажите пожалуйста, что я делаю не так.
  • Вопрос задан
  • 612 просмотров
Пригласить эксперта
Ответы на вопрос 1
@kyern
Быдлокодер без стажа
Вы отдаете обратно шаблон.
Нужно либо завести отдельный URL который будет обрабатывать AJAX-запрос и возвращать только данные, например в формате JSON, либо передавать дополнительные параметры при запросе, например в GET ajax=1, обрабатывать этот параметр отдельно во view и так же возвращать только значения, а не рендеренный шаблон.
Потом уже ваш обработчик на странице после получения данных заменяет их на странице.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы