2016-04-24 10 views
0

ページのデータを要求して処理し、結果をページの下部に表示するコードを書き直そうとしています。Flaskで同じページに結果を表示

フラスココード:

if request.method == 'GET': 
     return render_template("dashboard.html", data_nodes=data_nodes, data_para=data_para) 
    elif request.method=='POST': 
     #c, conn = connection2() 
     select1 = request.form.get('node') 
     select2 = request.form.get('parameter') 
     print str(select1) 
     print str(select2) 
     #processes the data 
     #display the processed data on the same page 
     #return render_template("dashboard.html") This will refresh the page! Is there another way? 

マイHTML側

 <form method="POST" action="{{ url_for('dashboard')}}"> 
      <label for="node">Node</label> 
      <select name="node"> 
       {% for o in data_nodes %} 
       <option value="{{ o.name }}">{{ o.name }}</option> 
       {% endfor %} 
      </select> 
      <label for="parameter">Parameter</label> 
      <select name="parameter"> 
       {% for o in data_para %} 
       <option value="{{ o.name }}">{{ o.name }}</option> 
       {% endfor %} 
      </select> 
      <button type="submit" class="btn btn-default" >Send</button> 
     </form> 

別のページにリダイレクトすることなく処理されたデータを投稿する方法はありますか?

+0

ページ内に何かを表示したいときは、ページを更新することなくページを表示する必要があります.Javascriptを使用してすべての更新を行う必要があります。したがって、あなたが望むことをする方法は、あなたのサービスを呼び出すjavascriptを作成し、受け取ったデータを使ってセクションを更新することです。 – Aquiles

+0

これは、JavaScriptがデータを最初に受け取り、Flaskに渡してから、Flaskがデータを処理してJavaScriptに送り返すことを意味しますか?それは可能ですか? –

+1

はい、それを行う方法はJavascriptを作成することです、AJAXはあなたのフラスコのポストサービスにフォームを送信してから、あなたのサービスの応答を処理します。答えの例を@sashaderehで確認してください – Aquiles

答えて

1

私はAJAXが正確に必要なものだと思います。 Hereあなたは実際の例を見つけることができます、それを実行して結果を確認してください。

+0

ありがとうございます。これはまさに私が望むものですが、明らかに何らかの理由で私のために働いていません。私はそれのために別の質問を開いてください。ありがとうございました。 –

関連する問題