7

私はDjangoを使用しており、Djangoは実行時にリクエストオブジェクトをビューに渡します。(一見すると)Flask では、アプリケーションがリクエストを所有し、インポートされているように見えます(静的リソースであるかのように)。私はこれを理解していません.WSGIやFlaskなどに頭を悩ませようとしています.どんな助けも大歓迎です.

4

1 に答える 1

7

Flaskでは、リクエストはスレッドセーフなグローバルであるため、実際にインポートします。

from flask import request

他のWSGIマイクロフレームワークはビュー関数の引数としてリクエストを渡すため、この機能がWSGIに関連しているかどうかはわかりません。「グローバル」リクエストオブジェクトはFlaskの機能です。Flaskは、単一のリクエストに有効なユーザーのデータを、flask.gと呼ばれる同様のオブジェクトに保存することも推奨しています。

ある関数から別の関数への1つの要求に対してのみ有効なデータを共有するには、スレッド環境で破損するため、グローバル変数は十分ではありません。Flaskは、アクティブなリクエストに対してのみ有効であり、リクエストごとに異なる値を返すことを保証する特別なオブジェクトを提供します。一言で言えば、リクエストやセッションの場合と同じように、正しいことを行います。

于 2010-09-20T01:56:04.763 に答える