@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

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

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

Войти через центр авторизации
Похожие вопросы