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>
別のページにリダイレクトすることなく処理されたデータを投稿する方法はありますか?
ページ内に何かを表示したいときは、ページを更新することなくページを表示する必要があります.Javascriptを使用してすべての更新を行う必要があります。したがって、あなたが望むことをする方法は、あなたのサービスを呼び出すjavascriptを作成し、受け取ったデータを使ってセクションを更新することです。 – Aquiles
これは、JavaScriptがデータを最初に受け取り、Flaskに渡してから、Flaskがデータを処理してJavaScriptに送り返すことを意味しますか?それは可能ですか? –
はい、それを行う方法はJavascriptを作成することです、AJAXはあなたのフラスコのポストサービスにフォームを送信してから、あなたのサービスの応答を処理します。答えの例を@sashaderehで確認してください – Aquiles