如何在成功运行Django视图后调用python脚本

时间:2012-07-20 06:35:58

标签: python django django-views

假设我有一个加载page.html的视图页面(请求)。

现在成功加载page.html之后,我想在page.html加载后10-15秒自动运行场景后面的python脚本。怎么可能?

此外,是否可以动态显示脚本的状态(运行/停止/语法错误..等)

3 个答案:

答案 0 :(得分:1)

从javascript运行脚本不是一种干净的方法,因为用户可以关闭浏览器,禁用js ...等,你可以使用django-celery,它可以让你运行backgroud脚本,你可以从中间件动态检查脚本的状态。祝你好运

答案 1 :(得分:0)

您可以在10-15秒后将AJAX的客户端超时添加回服务器。将其指向不同的视图并在该视图中执行脚本。例如:

function runServerScript() {
    $.get("/yourviewurlhere", function(data) {
        // Do something with the return data
    });
}
setTimeout("runServerScript()", 10000);

如果您希望显示状态,则客户端必须向服务器发出多个请求。

答案 2 :(得分:0)

对于此类用例,

Celery可能会派上用场。您可以从视图中启动任务(或调用它们的脚本)(即使有延迟,也可以根据需要)。将状态报告发送回浏览器将会更加困难,除非您选择像WebSockets这样的东西,但现在这是非常实验性的。