# Quart

Quart is a Fast Python web microframework. Using Quart you can,

> - write JSON APIs e.g. a RESTful API,

> - render and serve HTML e.g. a blog,

> - serve WebSockets e.g. a simple chat,

> - stream responses e.g. serve video,

> - all of the above in a single app,

> - or do pretty much anything over the HTTP or WebSocket protocols.

With all of the above possible using asynchronous (asyncio) libraries/code or synchronous libraries/code.

If you are,

> - new to Python then start by reading Installation instructions,

> - new to Quart then try the Quickstart,

> - new to asyncio see the Introduction to asyncio guide,

> - migrating from Flask see Migration from Flask,

> - looking for a cheatsheet then look here.

Quart is an asyncio reimplementation of the popular Flask microframework API. This means that if you understand Flask you understand Quart. See Flask evolution to learn more about how Quart builds on Flask.

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

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

Note

If you can’t find documentation for what you are looking for here, remember that Quart is an implementation of the Flask API and hence the Flask documentation is a great source of help. Quart is also built on the Jinja template engine and the Werkzeug toolkit.

The Flask documentation is so good that you may be better placed consulting it first then returning here to check how Quart differs.

## Tutorials

- Tutorials
  - Installation
  - Quickstart
  - Introduction to asyncio
  - Tutorial: Building a RESTful API
  - Tutorial: Building a simple blog
  - Tutorial: Building a basic chat server
  - Tutorial: Serving video
  - Deploying Quart

## How to guides

- How to guides
  - Background tasks
  - Blueprints
  - Custom Command Line Commands
  - Configuration
  - Developing with Quart
  - Detecting disconnection
  - Customise the Event Loop
  - Using Flask Extensions
  - Migration from Flask
  - JSON Encoding
  - Logging
  - Middleware
  - Consuming the request body
  - Routing
  - Server Sent Events
  - Session Storage
  - Startup and Shutdown
  - Streaming responses
  - Run synchronous code
  - Templates
  - Testing
  - Using Quart Extensions
  - Using HTTP/2
  - Using websockets

## Discussion

- Discussions
  - Async compatibility
  - Background tasks
  - Contexts
  - Design Choices
  - Denial Of Service mitigations
  - Flask evolution
  - Globals
  - Python version support
  - Websockets

## References

- Reference
  - API Reference
  - Cheatsheet
  - Logo
  - Response Return Values
  - Versioning
- MIT License
- Changes
  - Version 0.20.0
  - Version 0.19.9
  - Version 0.19.8
  - Version 0.19.7
  - Version 0.19.6
  - Version 0.19.5
  - Version 0.19.4
  - Version 0.19.3
  - Version 0.19.2
  - Version 0.19.1
  - Version 0.19.0
  - Version 0.18.4
  - Version 0.18.3
  - Version 0.18.2
  - Version 0.18.1
  - Version 0.18.0
  - Version 0.17.0
  - Version 0.16.3
  - Version 0.16.2
  - Version 0.16.1
  - Version 0.16.0
  - Version 0.15.1
  - Version 0.15.0
  - Version 0.14.1
  - Version 0.14.0
  - Version 0.13.1
  - Version 0.13.0
  - Version 0.12.0
  - Version 0.11.5
  - Version 0.11.4
  - Version 0.11.3
  - Version 0.11.2
  - Version 0.11.1
  - Version 0.11.0
  - Version 0.6.15
  - Version 0.10.0
  - Version 0.6.14
  - Version 0.9.1
  - Version 0.9.0
  - Version 0.6.13
  - Version 0.8.1
  - Version 0.8.0
  - Version 0.6.12
  - Version 0.7.2
  - Version 0.7.1
  - Version 0.7.0
  - Version 0.6.11
  - Version 0.6.10
  - Version 0.6.9
  - Version 0.6.8
  - Version 0.6.7
  - Version 0.6.6
  - Version 0.6.5
  - Version 0.6.4
  - Version 0.6.3
  - Version 0.6.2
  - Version 0.6.1
  - Version 0.6.0
  - Version 0.5.0
  - Version 0.4.1
  - Version 0.4.0
  - Version 0.3.1
  - Version 0.3.0
  - Version 0.2.0
  - Version 0.1.0