私はFlask tutorialを勉強しており、データベースに接続するためのアプリコンテキストの使い方について混乱しています。このページでは、Flaskチュートリアル:DB接続にアプリコンテキストを使用するのはなぜですか?
いつもデータベース接続を作成して終了することは非常に効率が悪いので、それはずっと長く保管しておく必要があります。 データベース接続はトランザクションをカプセル化するため、 は、一度に1つの要求だけが接続を使用するようにする必要があります。
しかし、接続の作成と終了は、コードによって達成されるものと正確に同じです。データベースに接続し、接続オブジェクトを返し、存在しない場合はアプリケーションコンテキストに追加するビューget_db
があります。また、アプリケーションコンテキストが解体されたときに接続オブジェクトを閉じるようなビューもあります(close_db
)。
私は、ここで何が起こっているのかを以下のように理解しています。ユーザは、アプリケーションのホームページに接続し、データベースとの接続を確立して閉じます。ユーザがページにリクエストを行うたびに(例えば、新しいブログエントリを投稿する)、データベースとの新しい接続が確立され、リクエストが完了すると閉じられる。それでは、アプリコンテキストを使用する価値は何ですか?なぜ、リクエストごとに接続を直接作成したり閉じたりしないのですか?
多分私はここで何かを誤解しています - どんな洞察にも感謝します!