Лучший способ отображения данных на веб-странице

-2

Я занимаюсь созданием сайта интрасети, который обращается к тестовым данным из базы данных и отображает результаты на общей веб-странице HTML.

Прямо сейчас у меня есть настройка Python как cgi, и сейчас я получаю желаемые результаты. Но теперь есть запрос на отображение некоторой информации в режиме реального времени.

Я новичок в мире веб-программирования, но как лучше всего запустить сценарий Python и отобразить информацию на странице HTML без перезагрузки.

Я знаю, как получить информацию на стороне сервера Python и правильно отображать информацию на стороне HTML, но то, что мне не хватает, - это то, как я могу связать эти два вместе или вызвать метод Python со стороны HTML.

Любые предложения или простые примеры были бы замечательными.

благодаря

4 ответа

1
Лучший ответ

Если вы хотите перезагрузить всю страницу, просто добавьте тег meta refresh в HTML в разделе HEAD:

<meta http-equiv="refresh" content="20" />

и страница будет перезагружена каждые 20 секунд.

Если вы хотите регулярно заполнять элемент страницы, и вы не очень заботитесь о его внешности (или можете потратить время на настройку подстраницы), вы можете использовать IFRAME, отображающий подстраницу через второй CGI, с мета-обновлением в своем HTML:

<iframe class="realtime-data" src="/cgi-bin/realtime.py"></iframe>

Другие более гибкие случаи также потребуют от вас предоставить второй CGI, который будет публиковать данные в реальном времени при вызове и опросить этот CGI с главной страницы, используя, например, метод jQuery load():

setInterval(function() {
    $('#div_where_html_goes').load('/cgi-bin/realtime.py')
}, 20000); // 20k milliseconds

Вышеприведенное является лишь намеком, а не хорошей практикой программирования:

  • нет никаких условий для загрузки ошибок
  • нет никаких предустановок для задержек и наложения сценариев
  • CGI должен предоставлять не только данные, но, вероятно, также некоторые макеты

... но этого должно быть достаточно, чтобы вы начали. В основном, вы устанавливаете jQuery (одна строка кода HTML при загрузке из Google), и вы указываете код инициализации в конце страницы. Там вы добавили Javascript-код:

<script type="text/javascript">
// <![CDATA[ <!--
    (function($){
        $(function(){

            setInterval(function() {
                $('#div_where_html_goes').load('/cgi-bin/realtime.py')
            }, 20000); // 20k milliseconds

        })
    })(jQuery);
// --> ]]>
</script>
</body>
  • 0
    Спасибо за очень полезный пост! Я использовал метод jQuery.ajax, и это то, что я искал.
2

Если "перезагрузка" означает, что пользователю не нужно ударять "перезагрузку"/"обновление" в своем браузере, тогда вам нужно настроить URL-адрес конечной точки, который возвращает данные в некотором формате (JSON/XML или даже HTML, который можно просто вставить в DOM) и использовать AJAX для периодического опроса этого URL-адреса и обновления. Либо это, либо заглянуть в веб-сокеты.

  • 0
    AJAX - это то, что я ищу, но как мне связать их вместе? То есть, как мне вызвать метод Python и получить результаты обратно с помощью HTML? Простой пример
2

Простой поиск в Google поможет вам найти, как создать сайт python.

Вот пример

  • 0
    Я уже говорил, что у меня есть простой полностью функционирующий сайт, написанный на Python, и мне не нужны эти дополнения. я смотрю на что-то за пределами Django и других надстроек приложений, потому что мне не нужны все дополнительные объемы.
0

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

Для обновления вам понадобится javascript (на странице), чтобы взаимодействовать с сервером.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню