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将数据从一个输入流传输到多个输出流的最佳方式   java如何使用反射机制调用驻留在具有默认可见性的基类中的公共方法?   在Java中将两个不同的方法调用为一个方法   集合的最佳Java线程安全锁定机制?   java在gae中存储json字符串   PHP/Java桥。如何从php服务器连接到桌面应用程序   java Spring:无法持久化用@JsonIgnore注释的实体   基准测试中的java非确定性分配行为   JavaSpring:使用Spring安全性为执行器端点配置安全性   java扩展spring应用程序上下文的最佳方式是什么?   在Mac OS上使用Java向终端窗口发送一些输入   java addInputStream(InputStream InputStream)方法失败   java为什么下面的代码打印为false?   java错误:类按钮中的addActionListener方法无法应用于给定类型;   java在spring数据jpa投影中使用嵌入式值对象   java访问匿名内部类中的变量的干净方法是什么?   java将POJO转换为JSON只返回“id”字段   jvm热点我在哪里可以找到MemoryConsumer。测试内存消耗的java程序?