私が開発しているアプリの単純なアイデアは、ユーザーが Linux コマンドを実行すると、Linux コマンドの結果が Web ブラウザーに表示されるというものです。これが私のviews.pyです:
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.template import RequestContext
import subprocess
globalcmd = 0
globalresult = 0
def ls(request):
if request.method == 'POST':
globalcmd = request.POST.get('command', False)
globalresult = subprocess.call(['globalcmd'], shell=True)
return HttpResponseRedirect('/thanks/')
else:
pass
return render_to_response('form.html', {'cmd':'cmd'}, context_instance=RequestContext(request))
def show_template(request):
return render_to_response('thanks.html', {'globalok':globalresult}, context_instance=RequestContext(request))
ビュー「ls」によって処理されるform.htmlから入力を取得します。ユーザーとして、ls コマンドでテストしています。ls コマンドを押すたびに、それは suprocess.call によって処理され、globalresult に保存され、後で thank.html で呼び出されます。出力が 0 です。何が間違っていますか? ここにthanks.htmlがあります:
<h1>
{{ globalresult }}
</h1>