Using Quart Extensions#

There are a number of extensions for Quart, some of which are listed here,

  • Quart-Auth Secure cookie sessions, allows login, authentication and logout.

  • Quart-Babel Implements i18n and l10n support for Quart.

  • Quart-Bcrypt Provides bcrypt hashing utilities for your application.

  • Quart-compress compress your application’s responses with gzip.

  • Quart-compress2 A package to compress responses in your Quart app with gzip .

  • Quart-CORS Cross Origin Resource Sharing (access control) support.

  • Quart-DB Managed connection(s) to postgresql database(s).

  • Quart-events event broadcasting via WebSockets or SSE.

  • Quart-Login a port of Flask-Login to work natively with Quart.

  • Quart-minify minify quart response for HTML, JS, CSS and less.

  • Quart-Mongo Bridges Quart, Motor, and Odmantic to create a powerful MongoDB extension.

  • Quart-Motor Motor (MongoDB) support for Quart applications.

  • Quart-OpenApi RESTful API building.

  • Quart-Keycloak Support for Keycloak’s OAuth2 OpenID Connect (OIDC).

  • Quart-Rapidoc API documentation from OpenAPI Specification.

  • Quart-Rate-Limiter Rate limiting support.

  • Quart-Redis Redis connection handling

  • Webargs-Quart Webargs parsing for Quart.

  • Quart-WTF Simple integration of Quart and WTForms. Including CSRF and file uploading.

  • Quart-Schema Schema validation and auto-generated API documentation.

  • Quart-session server side session support.

  • Quart-Uploads File upload handling for Quart.

Supporting sync code in a Quart Extension#

Extension authors can support sync functions by utilising the quart.Quart.ensure_async() method. For example, if the extension provides a view function decorator add ensure_async before calling the decorated function,

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