Python 提交表单将挂起,直到初始化过程完成

Python 提交表单将挂起,直到初始化过程完成,python,django,forms,Python,Django,Forms,我一直在编写一个django项目/应用程序来启动一些测试脚本。我以前问过一个关于如何在这里做到这一点的问题 我遇到了一个我认为不会发生的问题。我有一个表单,使用jquery显示某些复选框,这些复选框传递值,这些值将启动api到我正在测试的应用程序。与我最初问题中的代码完全相同。但是,当我提交表单时,表单将挂起,而后端过程将完成 submittest.initialise_test(t_start, t_templatename, t_datacenter) return render_to_r

我一直在编写一个django项目/应用程序来启动一些测试脚本。我以前问过一个关于如何在这里做到这一点的问题

我遇到了一个我认为不会发生的问题。我有一个表单,使用jquery显示某些复选框,这些复选框传递值,这些值将启动api到我正在测试的应用程序。与我最初问题中的代码完全相同。但是,当我提交表单时,表单将挂起,而后端过程将完成

submittest.initialise_test(t_start, t_templatename, t_datacenter)

return render_to_response('testsubmitted.html')
我知道我可以使用popen或cron,但我已经编写了我的应用程序,这需要一些重新设计


你知道我怎样才能使submittest.initialise_测试(t_start,t_templatename,t_datacenter)成为一个异步调用,或者是解决这个问题的方法吗?。结果被写入数据库,我当时希望使用ajax将其呈现到结果页面以更新结果。

您可以使用其中一个在后台进程中运行任务。

您可以尝试生成新线程,谢谢-我一直在阅读这方面的内容。。我只是不知道;吨希望任何产卵线程是开放的,但我一定会考虑这一点。这可能是一个简单的选择。实际上,这是可行的,我最终没有使用消息队列。我所做的只是导入线程,然后将submittest.intalize_测试(t_start,t_templatename,t_数据中心)更改为线程。start_新线程(submittest.intalize_测试,(t_start,t_templatename,t_数据中心))很高兴!如果你不想监视、操纵线程/任务,那么这似乎是最简单的方法。我来看看有什么选择。。我有一种感觉,这将是一个大重写的应用程序,虽然我不知道你的代码,所以我不能说。。。但是如果它是干净的,那么你应该找到一个快速的方法。不要试图在任务定义中添加太多代码,而是尝试让任务调用在应用程序中正确分解的代码(这样你就可以在有任务和没有任务的情况下使用这些代码)。当然-谢谢你的建议。我的应用程序大约有7000行代码。我使用类来定义不同的函数,并在django的应用程序中拆分这些类。即,一个应用中的api调用,另一个应用中的窗体和视图,另一个应用中的db调用。但要将所有这些要求归纳为一个问题是相当困难的。然而,对API的调用是我需要启动任务的地方,所以也许它毕竟不会那么糟糕。我将把这些任务放在一个队列中,并对结果进行投票。。这就是我要用的理论。如果我挣扎,我会重新提出一个新问题。。谢谢