[后端] python下的web framework大比拼

举报
~大鱼~ 发表于 2021/05/27 00:47:13 2021/05/27
【摘要】 目录 背景 简介 测试 结论 背景 一直以来,python的web框架给别人的感觉就是: 一个能打的都没有。社区也在不断的努力,特别在 asyncio 爆发之后,出现了一些新的异步框架,比如sanic,比如vibora,相比传统的flask, django,这些新的框架相对成熟了很多,而且在性能上已经有长足的进步了,和node, golang ,已经有一战之力了,大家可以...

目录

  • 背景
  • 简介
  • 测试
  • 结论

背景

一直以来,python的web框架给别人的感觉就是: 一个能打的都没有。社区也在不断的努力,特别在 asyncio 爆发之后,出现了一些新的异步框架,比如sanic,比如vibora,相比传统的flask, django,这些新的框架相对成熟了很多,而且在性能上已经有长足的进步了,和node, golang ,已经有一战之力了,大家可以在工作之余,实验性的去尝试一下,本次我就从自己工作之余的性能测试,来点评一下各个新框架的使用体验和性能对比。

简介

sanic

  • 地址: https://github.com/huge-success/sanic
  • star: 12413
  • 简介: Async Python 3.6+ web server/framework | Build fast. Run fast. https://sanicframework.org/
    《[后端] python下的web framework大比拼》

sanic 社区活跃,并且在写法上和flask 非常接近,这就意味着之前flask api项目可以很顺利的迁移过来,另外,由于加入了异步的特性,在与数据库交互的一些操作,也可以使用异步的一些写法,对于追求性能的同学来学,是非常好的选择

fastapi

  • 地址: https://github.com/tiangolo/fastapi
  • star: 3383
  • 简介: FastAPI framework, high performance, easy to learn, fast to code, ready for production https://fastapi.tiangolo.com/
    《[后端] python下的web framework大比拼》
    python3下非常优秀api框架,最最让我心动的是,当你写好api之后,它会自动生成swagger doc文档, api的使用方法,参数说明一看就知道,这可真是让人心动的特性,不过api的部署需要借助高性能的uvicorn服务器

japronto

  • 地址:https://github.com/squeaky-pl/japronto
  • star: 7364
  • 简介: Screaming-fast Python 3.5+ HTTP toolkit integrated with pipelining HTTP server based on uvloop and picohttpparser

性能极致的佳作,底层是用C实现的,先上图看看作者的测试结果
《[后端] python下的web framework大比拼》
这个结果真是让人流口水,对于这个结果,本人在ubuntu 16.04的服务器稳定了跑了两周,使用ab test 定时发送10000请求,轻松处理,稳定运行,作者到目前为止都没有放开正式的生产版本意思,作者的活跃度也不高,如果不懂一些C的基础,还是不要轻易用于大型的项目。

vibora

  • 地址:https://github.com/vibora-io/vibora
  • star: 5238
  • 简介: Fast, asynchronous and elegant Python web framework.
    《[后端] python下的web framework大比拼》
    上手方便,文档齐全,整体性能中等偏上,就是社区活跃度不高

结论

本次只是从自己平时使用的新框架中选了一些来做点评,其实还有一些其它的框架暂时没有用过,比如quart,apistar, 这些框架都有自己的新特性,需要我们结合具体的使用场景,去实际使用,性能并不是一切,生态,上手程度,文档的齐全度,社区活跃度都是综合考量的因素,下面这张图是第三方测试结构对于python下的web framework 的一些测试
《[后端] python下的web framework大比拼》
参考:https://www.techempower.com/benchmarks/

文章来源: brucedone.com,作者:大鱼的鱼塘,版权归原作者所有,如需转载,请联系作者。

原文链接:brucedone.com/archives/1477

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。