python asgi web微框架与flask具有相同的api

Quart的Python项目详细描述


Quart logo

Build Statusdocspypihttppythonlicensechat

quart是一个pythonASGIweb 微结构。它旨在提供最简单的使用方法 网络环境中的异步功能,特别是在已有的烧瓶中 应用程序。这是可能的,因为quart api是Flaskapi的超集。

quart的目标是成为一个完整的web微框架,因为它支持 http/1.1、http/2和websockets。夸脱是非常可扩展的,有一个 已知extensions和作品的数量 有很多Flask extensions

快速启动

quart可以通过pipenvpip

$ 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

测试

测试夸脱的最佳方法是使用Tox

$ pipenv install tox
$ tox

这将检查代码样式并运行测试。

帮助

夸脱是 最好的开始,在那之后尝试搜索stack overflow,如果你仍然 找不到答案请open an issue

与烧瓶的API兼容性

烧瓶API可以描述为由烧瓶公共和 烧瓶所基于的私有api和werkzeug。夸脱是设计的 与flask公共api完全兼容(除了async和 等待关键字)。此后,目标是与 Flask私有API,不保证Werkzeug 应用程序编程接口。

从烧瓶迁移

应该可以通过查找和 替换flaskquart,然后添加asyncawait关键字。请参阅docs以获取完整信息 细节。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何编写一个程序,返回一个字符串在另一个字符串中出现的次数?   @ManyToOne中的java JPA@ManyToOne无法正常工作   方法在Java中显示Eclipse中的错误,使用Maven可以很好地构建   在java中如何逆时针旋转此数组?   Java中关于日历的一个场景,其中显式设置日期会导致不同的结果   spring boot Java在BeanPropertyRowMapper上对ArrayList的缓慢SQL检索<accountQueryResult>   给出nullpointer异常的java回调方法   java对独立的arraylist元素执行算术运算   使用DropWizard对动态模式进行java JSON解析   双Java双十进制差分   带索引参数的链表java迭代器   JavaLocalDate(反)序列化可以在JAXRS服务器中工作,但不能在JAXRX客户端中工作   java请求一个整数