LINUX.ORG.RU

Отображение динамической информации о системе в html (python)

 , , , ,


0

3

Хорошего дня!

Вопрос скорее теоретический, но за практические примеры буду благодарен.

Цель: вывести на html-страницу некоторую информацию о сервере (debian). Например, загрузка ЦП, информация о дисках. Есть начальные навыки работы с python (django).

Не понимаю, как отображать динамические данные. Вероятно нужно использовать js. Прошу объяснить принцип. То есть теоретическую часть. Другими словами, как такое обычно реализуется. Спасибо!


Самый топорный вариант добавить на страницу с информацией строчку:

setTimeout(function() { location.href = location.href }, 5000)

Автоматический F5 каждые 5 секунд

makoven ★★★★★
()
Ответ на: комментарий от pawnhearts

Если брать за отправную точку, уровень загрузки ЦП в реальном времени. То это значение будет динамическим. И я хочу видеть в процентах этот уровень в html. Изменяемым.

kerby
() автор топика
Ответ на: комментарий от pawnhearts

А всякие готовые web-морды для серверов с красивыми графиками в реальном времени по такому же принципу работают? Я имею c использованием вебсокетов.

kerby
() автор топика
Ответ на: комментарий от kerby

Да. Либо вебсокеты, либо постоянно держаешь новые данные через ajax.

Вот тебе готовый пример http://www.flotcharts.org/flot/examples/ajax/index.html

Делаешь, чтобы django или что там у тебя возвращало json с твоими данными по какому-нибудь запросу.

Или http://www.flotcharts.org/flot/examples/realtime/index.html только getRandomData должно возвращать то, что ты получаешь по websocket.onmessage

pawnhearts ★★★★★
()

либо ajax-ом данные вытаскивать по таймауту, либо страничку перегружать по таймауту - выбирай

имхо вебсокеты - оверхед для данной задачи

bvn13 ★★★★★
()
Последнее исправление: bvn13 (всего исправлений: 1)
Ответ на: комментарий от int64

Не помню почему у меня с ним не сложилось. Кажется не перезагружалась страничка, будучи помещенная в iframe в одном из браузеров

makoven ★★★★★
()
Последнее исправление: makoven (всего исправлений: 1)
Ответ на: комментарий от kerby

Топорность в том, что это просто перезагрузка страницы целиком, аналогичная нажатия F5 в браузере. То каждый раз загружается все целиком.

По уму такие вещи, как тебе уже сказали, делают с помощью динамической подгрузки контента. ajax\websockets

Но кто же знает какая «динамичность» тебе нужна. Может тебе вполне достаточно раз в секунду\несколько секунд, чтобы странична обновлялась. тогда, конечно, никакой умной динамики тебе мастерить и не нужно

int64
()
Ответ на: комментарий от int64

Понятно. Думаю вполне пока можно обойтись топорным вариантом. А потом попробовать с использованием ajax.

kerby
() автор топика
Ответ на: комментарий от mittorn

заметь, что перегрузку страницы я не первым вариантом предложил

bvn13 ★★★★★
()
Ответ на: комментарий от mittorn

Да. Я понял так, что (от лучшего к худшему):

1. Вебсокеты (правильный выбор)

2. Аjax (чуть медленнее сокетов и больше нагрузка)

3. F5 (самое то для моего продакшена...шутка)

Вариант с перезагрузкой страницы выглядит как ручной электрогенератор. Пока крутишь ручку лампочка горит. =)

kerby
() автор топика
Ответ на: комментарий от pawnhearts

Не требует protocol upgrade (т.е. проходит через любой proxy), очень прост в использовании (как fe, так и be), но ... работает только в одну сторону (что в прочем часто только и надо), коммуникация в другую через xhr.

beastie ★★★★★
()
Ответ на: комментарий от anonymous

Не пробовал, но это фигня вообще не полноценная.

В tornado и aiohttp есть нормальная поддержка вебсокетов, надо брать их и делать в виде отдельного приложения.

pawnhearts ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.