0

我使用 Django 作为 Web 框架。在单个 HTML 页面上,我有一个表单,其目的是在我单击其提交按钮时启动 Python 子进程。表单的字段将填充将传递给该子流程的参数。

现在,我希望能够使用另一个表单按钮停止同一个子进程,最好是在同一个表单中。我怎样才能做到这一点?这可能并不难,但我目前不知道如何以简单而优雅的方式完成它。有任何想法吗?非常感谢!

4

1 回答 1

3

您必须在会话中保留对进程的引用。给每个提交按钮一个不同的“名称”属性,如果这个信号停止,终止子进程。

from subprocess import Popen
if 'start' in request.POST:
    p = Popen("do something")
    request.session['myprocess'] = p
elif 'stop' in request.POST:
    request.session['myprocess'].kill()

形式:

<form method="POST">
<input type="submit" name="start" value="start"/>
<input type="submit" name="stop" value="stop"/>
</form>

这是否有效取决于您的会话存储后端。

于 2012-11-14T13:38:58.750 回答