python asgi web微框架与flask具有相同的api
Quart的Python项目详细描述
quart是一个pythonASGIweb 微结构。它旨在提供最简单的使用方法 网络环境中的异步功能,特别是在已有的烧瓶中 应用程序。这是可能的,因为quart api是Flaskapi的超集。
quart的目标是成为一个完整的web微框架,因为它支持 http/1.1、http/2和websockets。夸脱是非常可扩展的,有一个 已知extensions和作品的数量 有很多Flask extensions。
快速启动
$ pipenv install quart $ pip install quart
需要Python3.7.0或更高版本(请参见python version support 推理)。
最小夸脱的例子是,
fromquartimportQuart,websocketapp=Quart(__name__)@app.route('/')asyncdefhello():return'hello'@app.websocket('/ws')asyncdefws():whileTrue:awaitwebsocket.send('hello')app.run()
如果上面的文件名为app.py,则可以运行为,
$ python app.py
要在生产设置中部署,请参阅deployment文档。
功能
quart支持完整的asgi 3.0规范以及 websocket响应和http/2服务器推送扩展。为了你们这些人 熟悉烧瓶,Quart通过添加对,
的支持来扩展烧瓶API- http/1.1请求流。
- 韦伯塞特。
- HTTP/2服务器推送。
注意,并不是所有的asgi服务器都支持这些特性,因为这个原因 推荐的服务器是Hypercorn。
贡献
夸脱在GitLab上形成。如果 遇到问题或有功能请求请打开 issue。如果你想的话 请提供修复或功能实现(排版修复 欢迎),通过提议一个merge request。
帮助
夸脱是 最好的开始,在那之后尝试搜索stack overflow,如果你仍然 找不到答案请open an issue。
与烧瓶的API兼容性
烧瓶API可以描述为由烧瓶公共和 烧瓶所基于的私有api和werkzeug。夸脱是设计的 与flask公共api完全兼容(除了async和 等待关键字)。此后,目标是与 Flask私有API,不保证Werkzeug 应用程序编程接口。
从烧瓶迁移
应该可以通过查找和 替换flask到quart,然后添加async和 await关键字。请参阅docs以获取完整信息 细节。