2016-12-21 2 views
1

私は正確なコードを探しているのではなく、私の問題に関するいくつかのガイダンスを探しています。私のページの1つに、サーバーに残っているディスク容量をユーザーに知らせる小さなセクションが必要です。この情報を30秒ごとに更新する必要があります。私はすでにディスク情報を得るために書かれたコードを持っています。しかし、私はその情報をどのように表示して更新するかについては不明です。Djangoを使用するテンプレートの情報を自動的に更新する方法

私が働いているHTML::これは私が持っているもの、ちょうどあなたを与える視覚的なことです {%が延び「チェックリスト/ base.html」%}を

{% block main_content %} 

    <form action="{% url 'Checklist:run' %}" method="post"> {% csrf_token %} 
     <input type="submit" name="submit_button" value="Run"> 
    </form> 

    <label for="disk_space">Disk Space: </label> 
    <input type="text" name="disk_space" value="{{ disk_space }}" id="disk_space"> 


{% endblock %} 

のビュー機能HTML:

def submit(request): #start scrtipt 
    submit.preProcess = subprocess.Popen(['chmod', '+x /home/psvuser/Desktop/test.sh']) 
    submit.process = subprocess.Popen(['/home/psvuser/Desktop/test.sh']) 

    global sem 
    sem = True 
    disk_space = request.get('disk_space', '') 
    disk_space = diskSpace() 

    start_time= int(round(time.time())) 
    f = open("/home/psvuser/Desktop/writer.txt", "a") 
    f.write(str(start_time)) 
    f.write(", ") 

    return render(request, 'Checklist/stop.html') 

私は定期的にページを更新する方法についてのアイデアを持っている、しかし、私は、HTML上に「disk_space」を表示する方法を知りません。

答えて

0

使用あなたのsubmitビューの最後にこのreturn文:render_to_responseの第2引数は、テンプレートで使用できる{'key':value, 'key2':value2}の辞書です

return render_to_response('Checklist/stop.html', 
    {'disk_space':disk_space}, 
    context_instance=RequestContext(request)) 

1

ページがすでにロードされている間にサーバーに定期的な非同期呼び出しを行いたいので、私はこの問題を解決するためにAJAXを使用します。

は、私は通常、すべてのデータを扱うために、いくつかのjqueryの(またはjavascript..whatever)を使用し、その後、あなたのビューでこの

def your_django_view(request): 
    # magic 
    server_data = '98% left!' 
    response_data['data'] = server_data 
    return HttpResponse(json.dumps(response_data), content_type="application/json") 

ような何かをしたい

$.ajax({type: 'POST', 
     url: '/function_url/', 
     data: { 
      }, 
      success: function(response_data) { 
       var server_mem = response_data['data'] 
      $('#disk_space').val(server_mem); 
    }) 
関連する問題