我使用 Django 作为 Web 框架。在单个 HTML 页面上,我有一个表单,其目的是在我单击其提交按钮时启动 Python 子进程。表单的字段将填充将传递给该子流程的参数。
现在,我希望能够使用另一个表单按钮停止同一个子进程,最好是在同一个表单中。我怎样才能做到这一点?这可能并不难,但我目前不知道如何以简单而优雅的方式完成它。有任何想法吗?非常感谢!
您必须在会话中保留对进程的引用。给每个提交按钮一个不同的“名称”属性,如果这个信号停止,终止子进程。
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>
这是否有效取决于您的会话存储后端。