16

print "hello world"WSGI の理解を深めるために、Web サーバー (Apache など) から多数のミドルウェアを経て "コード" (ビットなど)に至るまでのアプリケーションの流れを説明する図を探しています。

私は wsgi.org から WSGI に関するさまざまな記事を読みましたが、それでも「クリック」することはできず、ダイアグラムに関しては、Google はこれを除いて有用なものを返していません django は興味深いものの、ユーザーがその方法を理解することを期待していますミドルウェア連携など。

「百聞は一見に如かず」なので、これよりも少し低く/単純化された図はありますか?

4

3 に答える 3

20

Ian の派手なチューブを見て何も得られなかったので、自分で図を描くことにしました。WSGI フローがどのように機能するかを誰かが理解するのに役立つことを願っています。より良いものにするための提案がある限り、私はそれを変更することができます. これは、 LUCIDCHART webappで作成されました。元の図はここにあり、高品質の PNG はここにあります。

WSGIフロー

于 2011-10-09T20:34:34.760 に答える
9

Ian Bicking のWSGI - A Series of Tubesのが気に入っています。

于 2009-08-20T06:44:58.913 に答える
7

あなたが探している答えを提供できるかどうかはわかりませんが、リンク先の図は wsgi だけではありません。wsgi レイヤーは、図の 2 行目で終了します。その後はアプリケーション固有です。

WSGI は、現在のリクエストの内容を表すディクショナリ (environ) を取得する関数を何らかの形で提供するインターフェイス定義またはコントラクトです。応答を開始する準備ができたときに呼び出す関数 (start_response)。

呼び出す start_response メソッドには、HTTP ステータス コード ('200 OK') と HTTP ヘッダーのリスト ([('content-type', 'text/html')]) が必要です。

def say_hello(envron={},start_response):
    start_response('200 OK', [('content-type', 'text/html')])
    return ["Hello from WSGI"]

Web サーバーを wsgi アプリにリンクすることは、Web サーバーに固有のものだと思います。Web サーバーが Environ 辞書に到達する方法と、コードが呼び出すコールバックに関する情報は、おそらく気にする必要のない Web サーバーの魔法です。 . また、プロトコルに従っている限り、Web サーバーは、アプリケーションからの応答を構成する出力のリストにどのように到達したかを気にする必要はありません。

貼り付けのドキュメントは、私を大いに助けてくれました。役に立つかもしれません。ところで、Paste は、WSGI を利用するのに役立つ便利な機能の集まりです。また、ドキュメントは、WSGI の使用方法と拡張 Paste を理解するのに非常に役立ちます。

申し訳ありませんが、あなたが図を求めたことは知っています。:(

于 2009-08-20T00:54:17.577 に答える