0

Web フレームワークとして Django を使用しています。1 つの 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 に答える