我基本上有一個用perl編寫的後端程序。該程序將某些配置推送到網絡設備上。它提供了大量的輸出,我希望用戶能夠在程序運行時看到它。到目前爲止,這一直很容易,因爲我一直在從終端運行。django前端運行子進程輸出到瀏覽器窗口
現在我正在嘗試編寫一個django應用程序。我基本上想要一個用戶按提交,瀏覽器將它們帶到一個新頁面,並在這個新頁面上,我希望用戶看到該程序運行時的文本輸出。
我已經成功地得到使用backgroound運行程序: http://docs.python.org/library/subprocess.html
說下面是一個簡單的請求。在響應的網頁我想看看該程序的輸出運行實況,或者至少刷新看到最新的輸出每隔幾秒鐘(可能是一個workaroudn現在)
def config(request):
builder_Config_list = Config.objects.all().order_by('-generated_date')[:100]
if 'hostname' in request.POST and request.POST['hostname']:
hostname = request.POST['hostname']
command = "path/to/builder.pl --router " + hostname
result = subprocess.Popen(command.split(), stdout=subprocess.PIPE)
return render_to_response('config/config.html', {'result':result, })
這似乎很合理 - 你的問題是什麼? – jMyles
對不起,我應該添加一個最後的問題。它是「如何調整上面的代碼片段,以便程序」builder.pl「將輸出顯示給屏幕。output.pl基本上是一個期望腳本,它會登錄到路由器並進行一些配置。我希望用戶看到這發生在瀏覽器屏幕上。謝謝 – evolution