この記事が依存する python
環境は次のとおりです:
WSGI
web
サーバー ユニバーサル ゲートウェイ インターフェイスとも呼ばれ、正式名は web サーバー ゲートウェイ インターフェイス
です。これは、 web
サーバーと web
アプリケーションが通信し、 python
で http
リクエストとレスポンスを処理する方法に関する標準を定義します。単なるプロトコル、仕様、標準です。前の記事で書いた web
サーバーと同様に、この標準に従う必要はありません。
WSGI
もアプリケーションとサーバー ゲートウェイに分かれており、その中でもよく知られている Flask
はアプリケーション、uWSGI
、## に属します。 #wsgiref サーバーゲートウェイに属します。
WSGI は車輪の再発明を避け、より上手な人が物事を行えるようにします。サーバーを作成する場合は、
WSGI に準拠するサーバーを作成するだけです。アプリケーション側で作成する場合は、
WSGI 仕様に準拠するアプリケーションを作成するだけです。ホイールを繰り返し書く必要はありません。
WSGI は、
nginx、
apache、などの従来の
web サーバーにも接続できます。など対話します。
WSGI は、その
application が次のようなオブジェクトである必要があることを指定します。 と呼ばれる場合、通常、オブジェクトは関数またはクラスです。オブジェクトは、environ ディクショナリと start_response
関数の 2 つのパラメータを受け取る必要があり、オブジェクトが終了する前に start_response
関数を呼び出す必要があります。この関数はパラメータ status
と headers
を渡す必要があります。status
は応答ステータス コードとフレーズを定義し、headers
は応答を定義する必要があります。ヘッダ。 これをコードで説明する場合、次のように記述する必要があります:
def application(environ, start_response): status = '200 OK' headers = [('Content-type', 'text/plain')] start_response(status, headers) return [b'Hello, world!']
このうち、
application は 2 つのパラメータを受け入れる反復可能なオブジェクトです。1 つは environ
、その型は辞書ですか、それとも start_response
、その型は関数です。start_response
は application## の終了前に呼び出す必要があります。 # 関数を実行し、
status と
headers の値を渡します。
コードを変更して、WSGI 標準に準拠する Web ビジネス レイヤーを作成します
WSGI 標準を使用してビジネス レイヤーを作成する場合、それをどのように定義するか、および
WSGI サーバーを呼び出す方法。
上記では、WSGI
:wsgiref.simple_server に準拠するサーバーを紹介しました。## に従うだけです。 #WSGI
ビジネス層を記述するための標準。これは上記の アプリケーション
です。ステータス コードを定義するときは、おそらく 299 OK
に設定し、リクエスト ヘッダーを設定するときは、Server
を pdudo_web_sites
に設定します。 curl
を使用してサーバーをリクエストします。
WSGI 仕様に従って記述されていれば、簡単なサーバーを簡単に作成できることがわかりました。
以上がPython WSGI アプリケーションの原理は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。