都2022年了,Python Web框架你不会只知道Django和Flask吧?

举报
梦想橡皮擦 发表于 2022/08/31 12:00:01 2022/08/31
【摘要】 写在前面本文的诞生非常偶然,这两天一个小小小学弟问橡皮擦一个陈年旧问题,Python 基础学完了,想学习一个 Python Web 框架,是先学习 Django 呢,还是学习 Flask,现在的公司都用啥?每次这个问题出现的时候,我都会给拉一个清单,这次咱们直接把它转换成文章吧。标题就叫做《2022 年,你该学习的 Python Web 框架》以下涉及的所有框架,都不提供官网和任何学习资料...

写在前面

本文的诞生非常偶然,这两天一个小小小学弟问橡皮擦一个陈年旧问题,Python 基础学完了,想学习一个 Python Web 框架,是先学习 Django 呢,还是学习 Flask,现在的公司都用啥?

每次这个问题出现的时候,我都会给拉一个清单,这次咱们直接把它转换成文章吧。

标题就叫做《2022 年,你该学习的 Python Web 框架》

以下涉及的所有框架,都不提供官网和任何学习资料,作为一个合格的程序员,这些要自己能找到。

第一款:Flask

先学这个吧,轻便,灵活,定制性强,重点是上手就能用,而且又流行,

橡皮擦认识很多 Python Web 工程师就拿这个接小活做,==做的又快,来钱也快==。

Logo 是个辣椒的图标,比较火热~

第二款:Django

Python Web 框架中的大哥,大而全,自带了一堆功能,学会了之后,做后台管理系统,安装之后,配置几下就可用。

有一定的学习门槛,框架模式遵循 MTV 模式,即模型,视图,模板。

如果你初学阶段就上手的 django,掌握之后,回过头来看 Flask,==呃,小项目你会毫不犹豫的选择 Flask==。

第三款:tornado

是 Python Web 框架的同时,也是一款异步网络库,使用的是非阻塞 IO,所以处理速度特别快。
性能优秀,高并发优秀,但是因为其涉及异步 IP 相关知识,所以对初学者不友好,即学起来难度有那么一丢丢的高

如果你 Python 基础还不错,那 tornado 对你来说也是一个轻量级的 Web 框架,而且支持异步编程和 Web Socket,必须学这个呀。

第四款:Bottle

一个遵循 WSGI 的微型 Web 框架,整个架子就一个几十 K 的文件,里面包含路由,模板,简单的数据访问,6 的飞起。

不过也正是因为它“太简陋"了,学学就会了,所以大家总是在忽略它。

第五款:Sanic

不新不旧,不火不热的框架,基于 Python3.6+实现,支持 async/await 语法,所以也是一个高效框架。

目前的问题就是资料少,生态没有那么好(Sanic 插件文档都几乎没有),不过学习阶段肯定够了,语法非常类似 Flask,所以二者我选 Flask。

但是注意一点 Sanic 是异步框架,性能优于 Flask。

第六款:FastApi

没错,现在大家炒的最火热的”现代“ Python Web 框架,号称性能第一,编码速度第一,文档最简单,还能帮程序员减少错误。

还有一点是新,2019 年的框架,当下又这么火,所以必须学习一下。

其余 Python Web 框架

除了上文提及的框架外,还有一些小众,或为特殊场景准备的轮子框架。

如果你学有余力,都可以涉猎一下。

falcon

一个高性能构建大规模应用以及微服务的 Python Web 框架。

pyramid

以高效率和快节奏的开发能力而出名的 Python Web 框架。

asgineer

支持异步的 Web 框架。

emmett

宣传的是更加专注产品,简化开发过程,简化语法的一个框架。

apidaora

看名字就能猜测一下,它是一款专注于 Python Api 的框架。

hug

hug 的定义是一个 RESTFUL API 的框架,做接口平台用的框架

blacksheep

BlackSheep 是一个异步 Web 框架,语法与 Flask 类似。

index.py

着重优化了路由查找功能,因为号称是最快的 Python Web 框架之一,不过同行都这么称呼自己。
但是它的名字实在不讨好,毕竟橡皮擦总是创建一个叫 index.py 的文件。

starlette

一个轻量级的 ASGI 框架,在后面橡皮擦为大家补充一篇介绍 ASGI 知识点的文章。

responder

底层是 starlette,是 kennethreitz 写的,质量很有保证,这个大佬是谁?requests 模块的作者。

clastic

自己搜搜吧,这个不太了解,资料也不多。

molten

同样是一款小巧迷你的开发 API 的框架

aiohttp

写爬虫常用,基于 asyncio 和 异步 Web 框架。

cherrypy

与其它框架不同,cherrypy 有自己的想法,它希望开发者按照面向对象的思路开发 Web 系统,所以可以重点关注一下这个框架。

masonite

以 Django 为竞争对手的框架,你现在应该知道它是啥了吧。

cyclone

Cyclone 将 Tornado API 实现为 Twisted 协议。

django-ninja

好家伙,这个是 Django 和 FastApi 的结合体,官方说的是 Fast Django REST Framework,而且口号是:fast to learn,fast to code,fast to run,厉害,厉害。

web.py

Guido van Rossum 认为这是最好的 Python Web 框架,可惜作者已经不在了。

总结

Python Web 框架非常多,很多并未出现在上文,一个 Python Web 工程师仅需要学习前 6 款即可,剩下的可以工作中进行学习。
本文你可以收藏,然后万一哪天用到了呢~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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