读取控制台应用程序输出到网页

时间:2014-06-17 10:58:33

标签: jquery python ajax django

我正在开发一款django应用。我有一个显示一些文本的控制台应用程序。它基于一些进程有点冗长的文本,这个控制台应用程序运行大约5到10分钟。

我想将整个内容捕获到django网站。我探讨了各种各样的网络文章,但无法对如何实现这一目标有充分的了解。

如果我使用subprocess.check_output来运行该应用程序然后显示结果,那就太晚了。

我知道,我需要使用Ajax。但不知道如何实现这一目标。

我尝试过,将控制台应用程序的输出重定向到文本文件。我试着根据内容使用ajax来读取它。它不起作用。有没有一种有效的方法呢?

我使用以下代码从文本中读取。说实话,我不是Ajax或java脚本。

<script type="text/javascript" charset="utf-8">
function addmsg(type, msg){
    /* Simple helper to add a div.
    type is the name of a CSS class (old/new/error).
    msg is the contents of the div */
    $("#messages").append(
        "<div class='msg "+ type +"'>"+ msg +"</div>"
    );
}

function waitForMsg(){
    /* This requests the url "msgsrv.php"
    When it complete (or errors)*/
    $.ajax({
        type: "GET",
        url: "/path/to/text/file/",

        async: true, /* If set to non-async, browser shows page as "Loading.."*/
        cache: false,
        timeout:50000, /* Timeout in ms */

        success: function(data){ /* called when request to barge.php completes */
            addmsg("new", data); /* Add response to a .msg div (with the "new" class)*/

        },
        error: function(XMLHttpRequest, textStatus, errorThrown){
            addmsg("error", textStatus + " (" + errorThrown + ")");
        }
    });
};

$(document).ready(function(){
    waitForMsg(); /* Start the inital request */
});
</script>
<div class="msg"></div>

请帮我解决这个问题。

感谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

在视图中,我创建一个线程并生成运行5-10分钟的控制台应用程序。 然后我使用上面的ajax代码提供一个页面,该代码将在文本文件更新时读取输出文本文件。

谢谢, 巴拉。