我正在开发一款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>
请帮我解决这个问题。
感谢。
答案 0 :(得分:0)
我找到了解决方案。
在视图中,我创建一个线程并生成运行5-10分钟的控制台应用程序。 然后我使用上面的ajax代码提供一个页面,该代码将在文本文件更新时读取输出文本文件。
谢谢, 巴拉。