网易首页 > 网易号 > 正文 申请入驻

5个顶级异步Python框架

0
分享至

  https://geekflare.com/python-asynchronous-web-frameworks/

  大家好,欢迎来到 Crossin的编程教室 !

  Python在3.4引入了 asyncio 库,3.6新增了关键字asyncawait,此后,异步框架迅速发展了起来,性能上能和Node.js比肩,除非是CPU密集型任务,否则没有理由不使用异步框架。

  如果你是Web开发者,现在异步Web框架上有了更多选择!

  1、Tornado

  Tornado 根本不是什么新框架,它最初是由FriendFeed(后被Facebook收购)在2009年发布。从一开始就提供有异步编程的功能。

  Tornado 不仅仅是Web框架,同时它内置了很多异步模块,可用于自己构建异步应用。这些模块包括:

  协同程序和其他原语(tornado.gen,tornado.locks,tornado.queues等)

  网络模块(tornado.ioloop,tornado.iostream)

  异步服务器和客户端(tornado.httpserver,httpclient,等)

  
通过这些模块,Tornado 构建了自己的异步Web框架模块。

  import tornado.ioloop
import tornado.web

  class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")

  def make_app():
return tornado.web.Application([
(r"/", MainHandler),
])

  if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()

  Tornado在Python社区中拥有很多追随者,并且经验丰富的架构师使用它们来构建功能强大的系统。这个框架长期以来一直在解决并发问题,但是由于它不支持WSGI标准(大部分Python库仍在同步中),因此尚未成为主流。

  国内据说知乎是基于Torando构建的。

  
2、 Snaic

  Sanic是一个诞生有3年的框架:它只支持3.6以上Python版本,支持通用的async / await语法,开箱即用,因此你无需阅读大量文档就可以写出你的一个HTTP 处理器。

  除了async关键字之外,语法上和 flask 基于没差别。

  from sanic import Sanic
from sanic.response import json

  app = Sanic()

  @app.route("/")
async def test(request):
return json({"hello": "world"})

  if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000)

  Sanic可以说是Python世界中最流行和最受欢迎的异步框架。它具有你项目中需要的所有功能:路由,中间件,Cookie,版本控制,蓝图,基于类的视图,静态文件,流,sockets,此外你还可以集成模板,数据库驱动,文件I / O,队列等等。

  3、Vibora

  Vibora和Sanic非常像,致力于成为最快的Python Web服务器。他们网站首页有一个框架比较图:

  
Vibora声称比其它框架快几倍,比竞争对手Sanic还快两倍多。当然,这个基准测试要持怀疑态度。

  尽管在语法和功能上,Vibora可以与Sanic媲美但我认为Sanic更加成熟,因为它已经存在了很长一段时间并且具有更大的社区。

  from vibora import Vibora, JsonResponse

  app = Vibora()

  @app.route('/')
async def home():
return JsonResponse({'hello': 'world'})

  if __name__ == '__main__':
app.run(host="0.0.0.0", port=8000)

  4、Quart

  如果您喜欢Flask,但又要支持异步, 那么Quart你一定会喜欢

  Quart符合ASGI标准,该标准是WSGI标准的后继产品,并提供异步支持。Quart不仅与Flask相似,而且与Flask API兼容!该框架的作者希望保留了Flask的风格,只是向其中添加异步、WebSocket和HTTP 2支持。因此,你可以从Flask文档中学习Quart的用法,只需要记住Quart中的函数是异步的就行。

  from quart import Quart

  app = Quart(__name__)

  @app.route('/')
async def hello():
return 'hello'

  app.run()

  几乎完全像Flask

  由于Quart是从Flask中演进过来的,因此Flask的所有功能均可用:路由,中间件,会话,模板,蓝图等。实际上,你甚至可以直接在Quart内部使用Flask的扩展插件。不过,有一个问题是它仅支持Python 3.7+。

  5、FastAPI

  FastAPI似乎是异步 Python 框架里功能、文档最丰富的框架。

  该框架的作者深入研究了其他几个框架,从诸如Django到Sanic之类的现代框架,以及NestJS(Node.js,Typescript Web框架)。

  语法甚至可以说它比我们遇到的其他框架更有趣:

  rom fastapi import FastAPI

  app = FastAPI()

  @app.get("/users/me")
async def read_user_me():
return {"user_id": "the current user"}

  @app.get("/users/{user_id}")
async def read_user(user_id: str):
return {"user_id": user_id}

  FastAPI胜过其他框架的杀手锏,自动生成API文档:

  编写API接口后,你就可以使用符合标准的UI如SwaggerUI,ReDoc等来使用API。

  那性能呢?FastAPI是基于Starlette库构建的,其性能可与Node相匹配,在某些情况下甚至可以与Go相匹配。总而言之,我真的有一种感觉,FastAPI将成为Python的顶级异步框架。

  总结

  如今,Python异步生态正在发生很多事情。出现了新的框架,旧的框架正在重写,很多库开始支持异步行为。对于Web框架,Python已准备就绪,可提供出色的性能。如果很长一段时间你在考虑迁移到Node或者go,那现在不需要了。

  今日讨论:你目前在用什么框架?

  如果文章对你有帮助,欢迎转发/点赞~

  作者:刘志军

  来源:Python之禅

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
官方回应“白菜收购蘸取甲醛溶液问题”:情况属实,相关人员车辆被采取强制措施

官方回应“白菜收购蘸取甲醛溶液问题”:情况属实,相关人员车辆被采取强制措施

界面新闻
2026-08-22 15:56:59
河北“甲醛泡白菜”正装车发往江苏!蘸一下,能保鲜两三天

河北“甲醛泡白菜”正装车发往江苏!蘸一下,能保鲜两三天

听心堂
2026-08-22 12:51:49
森林北大方公开:已生娃,没分手...

森林北大方公开:已生娃,没分手...

阿废冷眼观察所
2026-08-22 14:57:09
特斯拉官网更新:中国被移出FSD可使用地区

特斯拉官网更新:中国被移出FSD可使用地区

新浪财经
2026-08-21 18:32:03
四川升学宴后续!主家被带走仅24小时,再迎3大噩耗,俩孩子毁了

四川升学宴后续!主家被带走仅24小时,再迎3大噩耗,俩孩子毁了

社会日日鲜
2026-08-21 11:20:57
台风“紫檀”影响华南南部和南海海域,多部门会商部署防汛防台风工作

台风“紫檀”影响华南南部和南海海域,多部门会商部署防汛防台风工作

界面新闻
2026-08-22 16:34:18
2人空壳公司拿走6000万,韩红基金会采购疑云待查,3处地址全扑空

2人空壳公司拿走6000万,韩红基金会采购疑云待查,3处地址全扑空

冰语历史
2026-08-22 12:36:39
赛前不唱中国国歌,赛后与日本合影!中国香港女排到底怎么了?

赛前不唱中国国歌,赛后与日本合影!中国香港女排到底怎么了?

金毛爱女排
2026-08-22 10:17:10
山东男子自驾3500公里送儿子去新疆上大学:和家人轮着开车,出发3天已抵甘肃张掖,车尾写着“送子求学”收获满满祝福

山东男子自驾3500公里送儿子去新疆上大学:和家人轮着开车,出发3天已抵甘肃张掖,车尾写着“送子求学”收获满满祝福

极目新闻
2026-08-22 14:23:41
祸不单行!被立案调查才9天,53岁郭德纲再迎噩耗,演出全部叫停,网友:天狂有雨,人狂有祸

祸不单行!被立案调查才9天,53岁郭德纲再迎噩耗,演出全部叫停,网友:天狂有雨,人狂有祸

火山詩话
2026-08-21 06:26:08
“味道”全变的成都车展,车企装都懒得装了,两品牌“壕”得吓人

“味道”全变的成都车展,车企装都懒得装了,两品牌“壕”得吓人

小李车评李建红
2026-08-22 08:00:09
为前夫担保后负债600万,52岁女演员朱晏:债务缺口还有500多万,一个月瘦了10斤,但从未崩溃失眠,这些东西压不垮我

为前夫担保后负债600万,52岁女演员朱晏:债务缺口还有500多万,一个月瘦了10斤,但从未崩溃失眠,这些东西压不垮我

鲁中晨报
2026-08-22 15:46:04
酱油为什么分生抽和老抽?“抽”是啥意思?建议弄懂再买,不吃亏

酱油为什么分生抽和老抽?“抽”是啥意思?建议弄懂再买,不吃亏

混沌录
2026-08-21 21:59:33
万梓良的儿子,18岁生日那天收到的不是跑车,不是豪宅,而是一块光滑的、没有刻字的金属牌

万梓良的儿子,18岁生日那天收到的不是跑车,不是豪宅,而是一块光滑的、没有刻字的金属牌

一盅情怀
2026-08-22 16:34:50
快讯!中国抓人,美国急了!

快讯!中国抓人,美国急了!

故事终将光明磊落
2026-08-22 09:40:46
大反转!2女孩买票占座放零食后续:铁路局道歉!我们错怪求让座女子了!网友炸锅

大反转!2女孩买票占座放零食后续:铁路局道歉!我们错怪求让座女子了!网友炸锅

潇拾亿郎
2026-08-22 01:16:01
许家印坑惨的10位大佬,马云仅排第9,第一名亏360亿,谁要是能找到他的财产线索,悬赏2535万

许家印坑惨的10位大佬,马云仅排第9,第一名亏360亿,谁要是能找到他的财产线索,悬赏2535万

麓谷隐士
2026-08-22 00:05:05
城市套路深啊!网传有成人用品店老板娘以约会为诱饵,诱导对方到自家无人售货机消费,完成下单之后便拉黑失联

城市套路深啊!网传有成人用品店老板娘以约会为诱饵,诱导对方到自家无人售货机消费,完成下单之后便拉黑失联

火山詩话
2026-08-22 07:04:13
局势彻底失控!俄方正式下达终极通牒,首个北约参战国被实锤锁定

局势彻底失控!俄方正式下达终极通牒,首个北约参战国被实锤锁定

鹤羽说个事
2026-08-21 10:20:15
许家印坑惨的10位大佬,马云仅排第9,第一名亏360亿遭悬赏

许家印坑惨的10位大佬,马云仅排第9,第一名亏360亿遭悬赏

天天热点见闻
2026-08-21 10:52:11
2026-08-22 20:15:00
Crossin编程教室 incentive-icons
Crossin编程教室
简单有趣的python入门
431文章数 709关注度
往期回顾 全部

科技要闻

苹果裁员200人:Vision Pro砍游戏团队

头条要闻

美国人均负债11.76万美元 特朗普放话称考虑出兵干预

头条要闻

美国人均负债11.76万美元 特朗普放话称考虑出兵干预

体育要闻

枪手赚翻!4000万新援揭幕战8分钟策动2球

娱乐要闻

《空枪》预测票房缩水,手握王炸都没赢

财经要闻

蔡昉解读经济:扩大消费需求的政策思考

汽车要闻

2026成都车展的顶流选手 硬派方盒子享界 G9

态度原创

艺术
健康
教育
时尚
家居

艺术要闻

草书界一部“空前绝后”的神帖!囊括11幅名家真迹,再现晋唐失传笔法

“矫正神器”真能治好脊柱侧弯吗?

教育要闻

2026山东中考数学真题,选择题的第10题,考查二次函数,一起来学

秋天最流行的4组叠穿公式,怎么搭都时髦!

家居要闻

2026建博会(广州) 公装联探展交流活动

无障碍浏览 进入关怀版