You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.0 KiB

WSGI の組み込み - Flask、Django など

サブアプリケーション - マウント{.internal-link target=_blank}、プロキシの背後{.internal-link target=_blank} で見たように、WSGI アプリケーションをマウントできます。

そのために WSGIMiddleware を使用して、Flask や Django などの WSGI アプリをラップできます。

WSGIMiddleware の使用

/// info | 情報

これには a2wsgi のインストールが必要です。例: pip install a2wsgi

///

a2wsgi から WSGIMiddleware をインポートします。

次に、そのミドルウェアで WSGI(例: Flask)アプリをラップします。

そして、それをあるパスの下にマウントします。

{* ../../docs_src/wsgi/tutorial001_py310.py hl[1,3,23] *}

/// note | 備考

以前は fastapi.middleware.wsgiWSGIMiddleware を使用することが推奨されていましたが、現在は非推奨です。

代わりに a2wsgi パッケージを使用することを推奨します。使い方は同じです。

a2wsgi パッケージがインストールされていることを確認し、a2wsgi から WSGIMiddleware を正しくインポートしてください。

///

チェック

これで、パス /v1/ 配下へのすべてのリクエストは Flask アプリケーションが処理します。

それ以外は FastAPI が処理します。

実行して http://localhost:8000/v1/ にアクセスすると、Flask からのレスポンスが表示されます:

Hello, World from Flask!

さらに http://localhost:8000/v2 にアクセスすると、FastAPI からのレスポンスが表示されます:

{
    "message": "Hello World"
}