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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.