Quart のデプロイ#

Quart を( run() を介して)直接実行(本番環境)することは推奨されません。その代わりに、Quart を Hypercorn または代替の ASGI サーバーを使用して実行することを推奨します。これは、 run() が開発には役立つ機能をイネーブルにするものの、本番環境のパフォーマンスが低下してしまうからです。Hypercorn は Quart とともにインストールされ、デフォルトで開発モードでリクエストを処理するために使用されます(例:run())。

Quart を ASGI サーバーで使用するには、サーバーを Quart アプリケーションにポイントするだけです。たとえば、

example.py#
 from quart import Quart

 app = Quart(__name__)

 @app.route('/')
 async def hello():
     return 'Hello World'

Hypercorn を使用して実行できます。

hypercorn example:app

Hypercorn のドキュメント を参照してください。

代替 ASGI サーバー#

サーバー名

HTTP/2

HTTP/3

Server Push

Websocket Response

Hypercorn

Daphne

Uvicorn

サーバーレスデプロイ#

AWS Lambda と API Gateway の設定で Quart をデプロイするには、特殊な ASGI 関数アダプターを使用する必要があります。 Mangum はそのための推奨機能で、例としては次のようになります。

from mangum import Mangum
from quart import Quart

app = Quart(__name__)

@app.route("/")
async def index():
    return "Hello, world!"

handler = Mangum(app)  # optionally set debug=True