ajax
post
をflask
にするボタンがあるページがあります。私は(例のためにハードコーディングによって単純化された)メッセージを計算するためにルートを望み、それを別のルートに戻し、ユーザーがいるページをリロードします。 redirect(urlfor())
は別のルートを呼び出していますが、ページがリロードされないため、render_template
が呼び出されていないようです。フラスコリダイレクト(urlfor())はページをリロードしません
INITの.py
from flask import Flask, render_template, request, redirect, url_for
app = Flask(__name__)
@app.route('/second_route', methods=['POST'])
def second_route():
print request.json
return redirect(url_for('hello_world', message='test'))
@app.route('/')
def hello_world(message=None):
return render_template('index.html', message=message)
app.run()
index.htmlを私の知る限り、リダイレクト応答を扱うことができない
ので、これは簡単な例でした。 'second_route'はデータをデータベースにプッシュするために使われます。 'message'はそのデータの成功を返すために使用され、ページをリロードするとデータベースからたくさんのものが再クエリされますので、divタグの' done'関数は私のアプリケーションでは動作しません。 'window.location.href'を使用した場合、メッセージにアクセスすることはできません。申し訳ありませんが、私の簡単な例は事を単純化しています。 – user2242044
最初に 'index.html'を読み込む際にデータベースにクエリをしていますか?私は両方を含めてあなたが必要としていたと思います。 AJAX呼び出しでエラーが発生した場合のインクルード句 – Mangohero1
私は 'done'にメッセージを保存するのか分からず、'/'ルートを再ロードするとメッセージが上書きされるので動作します。 – user2242044