シンプルなフラスコアプリがあり、@ app.before_requestを使用したいのですが、どういうわけか機能しません。私はこれについて正しく考えていないと確信しています!どうやらそれは次のようなものを使用して呼び出されます:
return redirect(url_for('index'))
しかし、私はそれを呼び出す必要があります:
return render_template('index.html')
誰か助けてもらえますか?
いくつかのコードを提供する場合は、質問を理解する方が良いかもしれませんが、正しく理解できれば、リクエストの直前にテンプレートをレンダリングしたいですか?
before_request
リクエストの前に何らかの関数を呼び出したり、何らかのアクションを実行したりするために使用されます。つまり、基本的には、アプリが来るリクエストを処理する準備をするためのものです。例: データベース接続を初期化しg
、後でアクセスできるようにオブジェクトに入れます。
before_request の使用例 (たとえば DB の初期化など) は次のとおりです。
@app.before_request
def before_request():
g.db = connect_db()
そのまま使うなら@app.before_request
デコレータ。Flask docsでさらに何かを見つけることができます
しかし、別のことは、なぜrender_template
リクエストの直前に欲しいのですか? この場所ではなく、ビューでテンプレートをレンダリングする必要があると思います。リクエストをアプリ、ビューに到達させ、そこでテンプレートをレンダリングします。