【问题标题】:Best way to display data on Web page [closed]在网页上显示数据的最佳方式[关闭]
【发布时间】:2012-11-17 20:41:35
【问题描述】:

我正在创建一个从数据库访问测试数据并将结果显示回通用 HTML 网页的 Intranet 站点。

现在我已经将 Python 设置为 cgi,并且正在获得我现在需要的预期结果。但是现在有一个要求实时显示一些信息。

我是通过这种方式进入 Web 编程世界的新手,但是在不重新加载的情况下运行 Python 脚本并在 HTML 页面上显示信息的最佳方式是什么。

我知道如何在 Python 服务器端获取信息并在 HTML 端正确显示信息,但我缺少的是如何将两者链接在一起或从 HTML 端调用 Python 方法。

任何建议或简单的例子都会很棒。

谢谢

【问题讨论】:

    标签: javascript python html ajax


    【解决方案1】:

    如果你想重新加载整个页面,那么只需在 HTML 的 HEAD 部分添加一个meta refresh 标签:

    <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(如果从 Google 加载,则为一行 HTML 代码),并在页面末尾提供 init 代码。你把 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>
    

    【讨论】:

    • 感谢您提供非常有用的帖子!我使用了 jQuery.ajax 方法,这正是我想要的。
    【解决方案2】:

    如果“重新加载”是指用户不必在浏览器中点击“重新加载”/“刷新”,那么您需要设置一个端点 URL,以某种格式返回数据(JSON /XML 甚至 HTML 可以直接插入到 DOM 中),并使用 AJAX 定期轮询该 URL 并进行更新。要么,要么查看 Web Sockets。

    【讨论】:

    • AJAX 是我正在寻找的,但我如何将两者联系在一起。这意味着我如何调用 Python 方法并从 HTML 中获取结果?简单的例子。
    【解决方案3】:

    您可以使用bottle。本教程将引导您创建一个简单的网站。

    要更新,您将需要 javascript(在页面中)与服务器交互。

    【讨论】:

      【解决方案4】:

      一个简单的谷歌搜索将帮助您找到如何创建 python 网站。

      Here is an example

      【讨论】:

      • 我已经说过我有一个用 Python 编写的简单的功能齐全的网站,不需要那些附加组件。我正在研究 Django 和其他应用程序附加组件之外的东西,因为我不需要所有额外的体积。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 2014-09-30
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多