Quart:给 Flask 加上异步能力的 Python Web 框架
Quart:给 Flask 加上异步能力的 Python Web 框架
如果你在找一款既能用 Flask 的熟悉语法,又能原生支持异步的 Python Web 框架,Quart 是个值得了解的选项。它在 GitHub 上收获了 3,639 颗 Star,由 Flask 背后的 Pallets 团队维护。
Quart 的定位很明确:基于 asyncio 重新实现 Flask。这意味着你熟悉的蓝图、路由装饰器、模板渲染等概念,在 Quart 里都能找到对应。不同之处在于,Quart 的视图函数可以直接写 async def,内部用 await 处理 IO 操作。

核心能力覆盖常见的 Web 开发需求。你可以用它渲染 HTML 模板,构建 JSON API,处理 WebSocket 长连接,还能流式传输请求和响应数据。这些功能都建立在异步 IO 之上,适合高并发的网络场景。
和 Flask 的兼容性是 Quart 的卖点。官方文档说,从 Flask 迁移到 Quart,通常只需要全局替换 flask 为 quart,再给视图函数加上 async 和 await 关键字。很多 Flask 扩展也能直接在 Quart 里使用,已有的生态可以复用。
安装方式是通过 pip:
pip install quart
下面这段代码展示了基本用法:渲染模板、返回 JSON、建立 WebSocket 连接,三个常见场景写在一个文件里。
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"})
启动命令和 Flask 类似:
quart run
服务会默认跑在 http://127.0.0.1:5000。生产环境需要配合 ASGI 服务器部署,Hypercorn 是官方推荐的选择,同样由 Pallets 生态维护。

Quart 的适用人群很清晰:已经在用 Flask,但项目里出现了异步需求,比如需要并发处理大量连接,或者要接入 WebSocket。这种情况下,不用换框架,也不用学习新的路由和配置方式,迁移成本很低。
FastAPI、Sanic 也是 Python 异步框架里知名度较高的项目。Quart 的优势在于和 Flask 的语法一致,学习曲线平缓。如果你团队里已经有一套 Flask 的代码规范和经验,Quart 能让你们在不推翻现有架构的前提下,引入异步能力。
Quart 没有试图做全栈,也没有堆砌功能,而是在 Flask 的基础上补上异步这一环。对于需要 async/await 的 Python Web 项目,Quart 提供了一条平滑的升级路径。遇到问题时,项目文档和 cheatsheet 是首要参考,也可以在 Discussions 页面或 Discord 社区提问。
文档和 cheatsheet 是首要参考,也可以在 Discussions 页面或 Discord 社区提问。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)