Quart拡張機能の使用#

Quartには多くの拡張機能があり、その一部を以下に示します。

  • Quart-Auth 安全なクッキーセッション、ログイン、認証、ログアウトを可能にします。

  • Quart-Babel Quartのi18nとl10nのサポートを実装します。

  • Quart-Bcrypt アプリケーションにbcryptハッシュユーティリティを提供します。

  • Quart-compress アプリケーションのレスポンスをgzipで圧縮します。

  • Quart-compress2 Quartアプリのレスポンスをgzipで圧縮するためのパッケージ。

  • Quart-CORS クロスオリジンリソース共有 (アクセスコントロール) のサポート。

  • Quart-DB postgresqlデータベースへの管理された接続。

  • Quart-events WebSocketsまたはSSEによるイベントブロードキャスト。

  • Quart-Login Flask-Loginの移植版で、Quartでネイティブに動作します。

  • Quart-minify HTML、JS、CSS、およびlessのQuartレスポンスをminifyします。

  • Quart-Mongo Quart、Motor、Odmanticを橋渡しして、強力なMongoDB拡張機能を作成します。

  • Quart-Motor QuartアプリケーションのMotor (MongoDB) サポート。

  • Quart-OpenApi RESTful APIの構築。

  • Quart-Keycloak KeycloakのOAuth2 OpenID Connect (OIDC) のサポート。

  • Quart-Rapidoc OpenAPI仕様からのAPIドキュメント。

  • Quart-Rate-Limiter レート制限のサポート。

  • Quart-Redis Redis接続処理

  • Webargs-Quart QuartのWebargs解析。

  • Quart-WTF QuartとWTFormsの簡単な統合。CSRFとファイルアップロードを含みます。

  • Quart-Schema スキーマ検証と自動生成されたAPIドキュメント。

  • Quart-session サーバーサイドのセッションサポート。

  • Quart-Uploads Quartのファイルアップロード処理。

Quart拡張機能で同期コードをサポートする#

拡張機能の作成者は、quart.Quart.ensure_async()メソッドを利用して同期関数をサポートできます。たとえば、拡張機能がビュー関数のデコレータを提供する場合は、デコレートされた関数を呼び出す前にensure_asyncを追加します。

def extension(func):
    @wraps(func)
    async def wrapper(*args, **kwargs):
        ...  # Extension logic
        return await current_app.ensure_async(func)(*args, **kwargs)
    return wrapper