• 基于Asyncio的Python微框架:Quart框架介绍
  • 发布于 2个月前
  • 129 热度
    0 评论
  • 酸汤鱼
  • 1 粉丝 3 篇博客
  •   
Quart是基于Asyncio的Python微框架。它志在让开发者能够在Web开发中很容易地得到Asyncio带来的好处。它对Flask应用的支持最好,它和Flask拥有相同的API。Quart希望成为功能完整的微框架,所以它支持 HTTP/1.1,HTTP/2 和 Websockets。Quart扩展性很强,并支持很多Flask扩展(希望将来会出现针对Quart的扩展)。

快速教程

你可以通过pip安装Quart
$ pip install quart
Quart支持Python>=3.6。

下面是Quart应用的一个小例子。
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()
将上面代码放在文件app.py中,可以通过下面命令运行
$ python app.py

特性
Quart具备通过HTTP提供网页服务所需的所有特性。如果你熟悉Flask,Quart就是一个在Flask上有所扩展的框架,扩展的功能如下:
1.HTTP/1.1分块传输和管道
2.Websockets
3.HTTP/2,包含服务器推送的能力

贡献
Quart在gitlab上开发,欢迎来提交问题和请求合并代码

测试
测试Quart最好的办法是使用Tox。
$ pip install tox
$ tox
这样会检查代码风格并进行测试。

与Flask的API兼容性
Flask API由公用API、私有API及Werkzeug API组成。Quart几乎完全与Flask公用API兼容(除了async和await关键字)。日后会努力兼容Flask私有API,但是不会兼容Werkzeug API。

从Flask迁移过来
从Flask迁移过来要做的应该就是把所有的单词flask改为单词quart,并在必要地方加上async和await关键字。具体请看文档
用户评论