All Projects → pgjones → Quart

pgjones / Quart

Licence: mit
Official mirror of https://gitlab.com/pgjones/quart

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Quart

Pulsar
Event driven concurrent framework for Python
Stars: ✭ 1,867 (+114.11%)
Mutual labels:  asyncio, http-server
Chili
Chili: HTTP Served Hot
Stars: ✭ 7 (-99.2%)
Mutual labels:  asyncio, http-server
Aiohttp
Asynchronous HTTP client/server framework for asyncio and Python
Stars: ✭ 11,972 (+1272.94%)
Mutual labels:  asyncio, http-server
Hypercorn
Official mirror of https://gitlab.com/pgjones/hypercorn https://pgjones.gitlab.io/hypercorn/
Stars: ✭ 193 (-77.87%)
Mutual labels:  asyncio, http-server
waspy
WASP framework for Python
Stars: ✭ 43 (-95.07%)
Mutual labels:  http-server, asyncio
Uvicorn
The lightning-fast ASGI server. 🦄
Stars: ✭ 4,676 (+436.24%)
Mutual labels:  asyncio, http-server
stream video server
demonstrates how to create video streaming server with the help of aiohttp and opencv
Stars: ✭ 15 (-98.28%)
Mutual labels:  http-server, asyncio
Httpserver
Python 3 implementation of an HTTP server
Stars: ✭ 5 (-99.43%)
Mutual labels:  asyncio, http-server
Go Book Store Api
Go Sample project to understand Mysql CRUD operation with best practises Includes logging, JWT, Swagger and Transactions
Stars: ✭ 18 (-97.94%)
Mutual labels:  http-server
Webcpp
用C++开发web服务器框架
Stars: ✭ 23 (-97.36%)
Mutual labels:  http-server
Async Reduce
Reducer for similar simultaneously coroutines
Stars: ✭ 17 (-98.05%)
Mutual labels:  asyncio
Farwest
Framework for building RESTful HATEOAS-driven applications.
Stars: ✭ 18 (-97.94%)
Mutual labels:  http-server
Fennel
A task queue library for Python and Redis
Stars: ✭ 24 (-97.25%)
Mutual labels:  asyncio
Strawberry
A new GraphQL library for Python 🍓
Stars: ✭ 891 (+2.18%)
Mutual labels:  asyncio
Webmachine Ruby
Webmachine, the HTTP toolkit (in Ruby)
Stars: ✭ 832 (-4.59%)
Mutual labels:  http-server
Linda
Minimal, multi-threaded HTTP/1.1 server written in Rust
Stars: ✭ 16 (-98.17%)
Mutual labels:  http-server
V3n0m Scanner
Popular Pentesting scanner in Python3.6 for SQLi/XSS/LFI/RFI and other Vulns
Stars: ✭ 847 (-2.87%)
Mutual labels:  asyncio
Jerrymouse
A scalable java servlet container base on reactor
Stars: ✭ 27 (-96.9%)
Mutual labels:  http-server
Aiomixcloud
Mixcloud API wrapper for Python and Async IO
Stars: ✭ 23 (-97.36%)
Mutual labels:  asyncio
Waitress
Waitress - A WSGI server for Python 2 and 3
Stars: ✭ 916 (+5.05%)
Mutual labels:  http-server

Quart

.. image:: https://assets.gitlab-static.net/pgjones/quart/raw/master/artwork/logo.png :alt: Quart logo

|Build Status| |docs| |pypi| |python| |license| |chat|

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

  • render and serve HTML templates,
  • write (RESTful) JSON APIs,
  • serve WebSockets,
  • stream request and response data,
  • do pretty much anything over the HTTP or WebSocket protocols.

Quickstart

Quart can be installed via pip <https://docs.python.org/3/installing/index.html>_,

.. code-block:: console

$ pip install quart

and requires Python 3.7.0 or higher (see python version support <https://pgjones.gitlab.io/quart/discussion/python_versions.html>_ for reasoning).

A minimal Quart example is,

.. code-block:: python

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,

.. code-block:: console

$ python app.py

To deploy this app in a production setting see the deployment <https://pgjones.gitlab.io/quart/tutorials/deployment.html>_ documentation.

Contributing

Quart is developed on GitLab <https://gitlab.com/pgjones/quart>. If you come across an issue, or have a feature request please open an issue <https://gitlab.com/pgjones/quart/issues>. If you want to contribute a fix or the feature-implementation please do (typo fixes welcome), by proposing a merge request <https://gitlab.com/pgjones/quart/merge_requests>_.

Testing


The best way to test Quart is with `Tox
<https://tox.readthedocs.io>`_,

.. code-block:: console

    $ pip install tox
    $ tox

this will check the code style and run the tests.

Help
----

The Quart `documentation <https://pgjones.gitlab.io/quart/>`_ or
`cheatsheet
<https://pgjones.gitlab.io/quart/reference/cheatsheet.html>`_ are the
best places to start, after that try searching `stack overflow
<https://stackoverflow.com/questions/tagged/quart>`_ or ask for help
`on gitter <https://gitter.im/python-quart/lobby>`_. If you still
can't find an answer please `open an issue
<https://gitlab.com/pgjones/quart/issues>`_.

Relationship with Flask
-----------------------

Quart is an asyncio reimplementation of the popular `Flask
<http://flask.pocoo.org/>`_ 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 and await keywords. See the docs <https://pgjones.gitlab.io/quart/how_to_guides/flask_migration.html>_ for more help.

.. |Build Status| image:: https://gitlab.com/pgjones/quart/badges/master/pipeline.svg :target: https://gitlab.com/pgjones/quart/commits/master

.. |docs| image:: https://img.shields.io/badge/docs-passing-brightgreen.svg :target: https://pgjones.gitlab.io/quart/

.. |pypi| image:: https://img.shields.io/pypi/v/quart.svg :target: https://pypi.python.org/pypi/Quart/

.. |python| image:: https://img.shields.io/pypi/pyversions/quart.svg :target: https://pypi.python.org/pypi/Quart/

.. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg :target: https://gitlab.com/pgjones/quart/blob/master/LICENSE

.. |chat| image:: https://img.shields.io/badge/chat-join_now-brightgreen.svg :target: https://gitter.im/python-quart/lobby

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].