Code Monkey home page Code Monkey logo

ccns11's Introduction

Quart

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 pip,

$ pip install quart

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

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

Also see this cheatsheet.

To deploy in a production setting see the deployment documentation.

Features

Quart supports the full ASGI 3.0 specification as well as the websocket response and HTTP/2 server push extensions. For those of you familiar 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. 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.

Testing

The best way to test Quart is with Tox,

$ pip 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 searching stack overflow, if you still can't find an answer please open 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.

ccns11's People

Contributors

pgjones avatar briancappello avatar arminweigl avatar potomak avatar sanderfoobar avatar arusahni avatar pszpetkowski avatar wwwjfy avatar unicodex avatar tharvik avatar masipcat avatar jaimelennox avatar 0az avatar waghanza avatar ramonpoca avatar broman avatar linsomniac avatar simonw avatar tinche avatar agritheory avatar ccns1 avatar jarhill0 avatar junnplus avatar l769829723 avatar locoz666 avatar ucg8j avatar jordaneremieff avatar jlaine avatar jvk75 avatar zarybnicky avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.