Skip to main content
Warning Some features may not work without JavaScript. Please try enabling it if you encounter problems.

A Python ASGI web microframework with the same API as Flask

Project description

Quart logo

Build Status docs pypi http python license chat

Quart is a Python ASGI web microframework. It is intended to provide the easiest way to use asyncio functionality in a web context, especially with existing Flask apps. This is possible as the Quart API is a superset of the Flask API.

Quart aims to be a complete web microframework, as it supports HTTP/1.1, HTTP/2 and websockets. Quart is very extendable and has a number of known extensions and works with many of the Flask extensions.

Quickstart

Quart can be installed via pipenv or pip,

$ pipenv install quart
$ pip install quart

and requires Python 3.6.1 or higher.

A minimal Quart example is,

from quart import Quart, websocket

app = Quart(__name__)

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

@app.websocket('/ws')
async def ws():
    while True:
        await websocket.send('hello')

app.run()

if the above is in a file called app.py it can be run as,

$ python app.py

To deploy in a production setting see the deployment documentation.

Features

Quart supports the full ASGI 2.0 specification as well as the websocket response and HTTP/2 server push extensions. For those of you familar with Flask, Quart extends the Flask-API by adding support for,

  • HTTP/1.1 request streaming.

  • Websockets.

  • HTTP/2 server push.

Note that not all ASGI servers support these features, for this reason the recommended server is Hypercorn.

Contributing

Quart is developed on GitLab. You are very welcome to open issues or propose merge requests.

Testing

The best way to test Quart is with Tox,

$ pipenv install tox
$ tox

this will check the code style and run the tests.

Help

The Quart documentation is the best place to start, after that try opening an issue.

API Compatibility with Flask

The Flask API can be described as consisting of the Flask public and private APIs and Werkzeug upon which Flask is based. Quart is designed to be fully compatible with the Flask public API (aside from async and await keywords). Thereafter the aim is to be mostly compatible with the Flask private API and to provide no guarantees about the Werkzeug API.

Migrating from Flask

It should be possible to migrate to Quart from Flask by a find and replace of flask to quart and then adding async and await keywords. See the docs for full details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Quart-0.6.9.tar.gz (100.5 kB view details)

Uploaded Source

Built Distribution

Quart-0.6.9-py2.py3-none-any.whl (98.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file Quart-0.6.9.tar.gz.

File metadata

  • Download URL: Quart-0.6.9.tar.gz
  • Upload date:
  • Size: 100.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.2 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5

File hashes

Hashes for Quart-0.6.9.tar.gz
Algorithm Hash digest
SHA256 cbb776a94168234a019ab432db86025d0b4dfe02d26378f7e618c7c2a9996ebe
MD5 5030f67dc1033d94d72e9a5f7f9f0b93
BLAKE2b-256 a718f188d5bb6275f0b5529c32edd51036943a6348754f5fdb09a8fe881b0544

See more details on using hashes here.

File details

Details for the file Quart-0.6.9-py2.py3-none-any.whl.

File metadata

  • Download URL: Quart-0.6.9-py2.py3-none-any.whl
  • Upload date:
  • Size: 98.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.2 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5

File hashes

Hashes for Quart-0.6.9-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d4e5fc3aed22f3a50be780e62cf35dfb4ba1c947692b86ab8b6744e915413786
MD5 4c5f2f5bf3f9633c2557e2e3612c431c
BLAKE2b-256 c17451959a28d3de41a27a0b496df041a4c1259c7f52708ae2594c7e188c6531

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page