ホームページ > バックエンド開発 > Python チュートリアル > Python WSGI アプリケーションの原理は何ですか?

Python WSGI アプリケーションの原理は何ですか?

王林
リリース: 2023-05-19 13:25:13
転載
1237 人が閲覧しました

この記事が依存する python 環境は次のとおりです:

python WSGI Application原理是什么

WSGI とは

WSGI web サーバー ユニバーサル ゲートウェイ インターフェイスとも呼ばれ、正式名は web サーバー ゲートウェイ インターフェイスです。これは、 web サーバーと web アプリケーションが通信し、 pythonhttp リクエストとレスポンスを処理する方法に関する標準を定義します。単なるプロトコル、仕様、標準です。前の記事で書いた web サーバーと同様に、この標準に従う必要はありません。

WSGI もアプリケーションとサーバー ゲートウェイに分かれており、その中でもよく知られている Flask はアプリケーション、uWSGI、## に属します。 #wsgiref サーバーゲートウェイに属します。

個人的には、

WSGI は車輪の再発明を避け、より上手な人が物事を行えるようにします。サーバーを作成する場合は、WSGI に準拠するサーバーを作成するだけです。アプリケーション側で作成する場合は、WSGI 仕様に準拠するアプリケーションを作成するだけです。ホイールを繰り返し書く必要はありません。

さらに、

WSGI は、nginxapache、などの従来の web サーバーにも接続できます。など対話します。

python WSGI Application原理是什么

WSGI がアプリケーションに対して指定するもの

WSGI は、その application が次のようなオブジェクトである必要があることを指定します。 と呼ばれる場合、通常、オブジェクトは関数またはクラスです。オブジェクトは、environ ディクショナリと start_response 関数の 2 つのパラメータを受け取る必要があり、オブジェクトが終了する前に start_response 関数を呼び出す必要があります。この関数はパラメータ statusheaders を渡す必要があります。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_responseapplication## の終了前に呼び出す必要があります。 # 関数を実行し、statusheaders の値を渡します。 コードを変更して、WSGI 標準に準拠する Web ビジネス レイヤーを作成します

昨日書いたコードは、

Hello, Destined Person.

を返します。見てみましょう。 、

WSGI 標準を使用してビジネス レイヤーを作成する場合、それをどのように定義するか、および WSGI サーバーを呼び出す方法。

上記では、python WSGI Application原理是什么WSGI

:

wsgiref.simple_server に準拠するサーバーを紹介しました。## に従うだけです。 #WSGI ビジネス層を記述するための標準。これは上記の アプリケーションです。ステータス コードを定義するときは、おそらく 299 OK に設定し、リクエスト ヘッダーを設定するときは、Serverpdudo_web_sites に設定します。 curl を使用してサーバーをリクエストします。

ああ、

WSGIpython WSGI Application原理是什么 仕様に従って記述されていれば、簡単なサーバーを簡単に作成できることがわかりました。

以上がPython WSGI アプリケーションの原理は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート