203

Flask 0.10 では、リクエスト コンテキストからアプリ コンテキストに移行することがわかりましgg

私の理解(Flask 0.9の場合)は次のとおりです。

  • gリクエストコンテキストに存在します。つまり、リクエストの開始時に新たに作成され、終了するまで使用できます
  • g「リクエスト黒板」として使用することを意図しており、リクエストの期間に関連するものを配置できます(つまり、リクエストの最初にフラグを設定し、おそらくbefore_request/after_requestペアから最後に処理します)
  • リクエストレベルの状態を保持することに加えてg、リソース管理、つまりデータベース接続の保持などに使用できますし、使用する必要があります。

Flask 0.10 で正しくなくなった文はどれですか? 変更の理由について説明しているリソースを教えてもらえますか? Flask 0.10 で "request blackboard" として何を使用する必要がありますか?独自のアプリ/拡張機能固有のスレッドローカル プロキシを作成し、それをコンテキスト スタックにプッシュする必要がありますbefore_requestか? アプリケーションが (リクエストとは異なり) 長期間存続し、リソースが決して解放されない場合、アプリケーション コンテキストでのリソース管理のポイントは何ですか?

4

2 に答える 2

135

Markus によってリンクされているAdvanced Flask Patternsgは、0.10でのいくつかの変更について説明しています。

  • gアプリケーションコンテキストに存在するようになりました。
  • すべてのリクエストは新しいアプリケーション コンテキストをプッシュし、古いコンテキストを消去するためg、コードを変更せずにリクエストごとにフラグを設定するために引き続き使用できます。
  • が呼び出された後、 アプリケーション コンテキストがポップされます。teardown_request(Armin のプレゼンテーションでは、これは、DB 接続の作成などは、要求の環境をセットアップbefore_requestするタスクであり、 and 内で処理されるべきではないためであると説明されていますafter_request)
于 2013-02-26T23:06:46.323 に答える