GitHub - pgjones/quart: An async Python micro framework for building web applications. (original) (raw)

Quart

Quart logo

Build Status docs pypi python license chat

Quart is an async Python web microframework. Using Quart you can,

Quickstart

Quart can be installed via pip,

and requires Python 3.7.0 or higher (see python version supportfor reasoning).

A minimal Quart example is,

from quart import Quart, render_template, websocket

app = Quart(name)

@app.route("/") async def hello(): return await render_template("index.html")

@app.route("/api") async def json(): return {"hello": "world"}

@app.websocket("/ws") async def ws(): while True: await websocket.send("hello") await websocket.send_json({"hello": "world"})

if name == "main": app.run()

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

To deploy this app in a production setting see the deploymentdocumentation.

Contributing

Quart is developed on GitHub. If you come across an issue, or have a feature request please open anissue. If you want to contribute a fix or the feature-implementation please do (typo fixes welcome), by proposing a merge request.

Testing

The best way to test Quart is with Tox,

this will check the code style and run the tests.

Help

The Quart documentation orcheatsheetare the best places to start, after that try searching stack overflow or ask for helpon discord. If you still can't find an answer please open an issue.

Relationship with Flask

Quart is an asyncio reimplementation of the popular Flask microframework API. This means that if you understand Flask you understand Quart.

Like Flask Quart has an ecosystem of extensions for more specific needs. In addition a number of the Flask extensions work with Quart.

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 andawait keywords. See the docsfor more help.