三个目前最火的Python Web开发框架,你值得拥有!
今天聊下Python Web框架,Python Web框架大致分成三类,分别是Full-Stack Web框架、Non Full-Stack Web框架、Asynchronous 异步框架。
什么是Web框架
框架的意思就是把基础的,常用的功能都写好了。比如:URL分发(路由)、数据库读写(ORM)、表单,admin后台管理等, 你只需要理解怎么调用这个框架,让你把精力放在业务逻辑实现上。
框架怎么分优劣
我们通常说的某某框架用起来舒服,用起来方便,是基于哪些考虑的呢?
我相信不同的开发人员说出的原因是不一样的。有的喜欢功能强大的框架,有的喜欢易上手的框架,有的喜欢小巧,配置灵活的框架。
有的开发者喜欢框架功能很全,不用自己造轮子,比如Django框架,它提供的功能非常全面,比如(cache、session、登陆、auth授权等等),和它强大的中间件,提供全方案Web开发支持。我们把这种框架叫做Full-Stack Web框架。
当然功能强大和全面的反面就是有点复杂(相对的),有点臃肿,不太灵活。所以Django上手要慢一点,自己造一个轮子替换Django某些内置功能或者使用第三方功能时不太灵活。
有的喜欢框架小巧,灵活,就像Flask框架一样。跟Django相反,Flask小巧、灵活,它的很多功能需要开发者以插件的形式向里安装,你也可以自己定制。这类不提供全方案开发支持的框架,我们叫做Non Full-Stack Web框架。
有的喜欢速度,喜欢框架本身的速度很快,喜欢I/O性能吞吐高并发,像Tornado和Sanic框架。它们是异步框架,I/O性能相对就高一些。当然异步编程的理解难度要大一点。
上面解释了什么是Full-Stack Web框架、Non Full-Stack Web框架和Asynchronous 异步框架。下面具体介绍这三个下面的代表框架。
一、Django
Django是Full-Stack Web框架的代表,功能非常全面和成熟,开发文档很完备。它在Python Web开发框架的占有率应该是第一。Django的宗旨就是尽可能的提供所有功能,让你用尽可能少的代码完成业务。官方的说法是,如果你的开发日期非常紧,那么选用Django是正确的做法。 我们自己开发的项目也全都选用的Django。
缺点:
在urls.py里配置URL路由有点麻烦;
模板不能像php一样在模板插代码;
数据库ORM组装出来的sql语句性能较差;
二、Flask
Flask算是Non Full-Stack Web框架代表,是一个轻量级的Web Framework,它在中国的应用其实挺广的。它的设计目的是帮助构建一个稳定的Web基础应用。它的灵活性体现在,它的模块化设计可以轻松适合开发者的需求。Flask跟Django比起来,你可以自己造轮子,也可以是以插件的形式使用第三方库。使用Restful request的风格,很适合开发web api,Flask也更加pythonic。
今天正好是愚人节,其实Flask是在2010年4月1日愚人节这天发布的,作者本意是想在这一天整蛊一番的,谁知Flask在后来却越来越火了。
关于怎么快速学python,不管你是小白还是大牛,小编我都欢迎,不定期分享干货每天晚上20:00都会开直播给大家分享python学习知识和路线方法,群里会不定期更新最新的教程和学习方法,大家都是学习python的,或是转行,或是大学生,还有工作中想提升自己能力的,如果你是正在学习python的小伙伴可以加入学习。最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实
三、Tornado
Tornado其实也是Non Full-Stack Web框架。因为它支持异步,所以就单独说一下。
跟上面Django和Flask比起来的话,好像没啥可说的了,就是IO性能优秀。官方说能支持1万个并发请求。适合一些高并发项目。
因为一些原因,我对Tornado的印象不太好。16年的时候公司收购了一个项目,然后我去杭州接手这个项目的技术部分,系统是用Tornado开发的。团队是从杭州大厂出来的,设计得非常繁复,说是要支持4万并发的业务。但是到我们买的那天,业务连4千并发都不到。接下来的一年公司为这个项目付出了很大代价。
”
当然在Python3时代,异步框架还有其他的,比如Sanic,性能测试对比显示,Sanic比Tornado快几丢丢。猿人学网站除了有Python教程,我也正在写Sanic教程,感兴趣的可以去看看。
说了这么多,如何选择Python Web框架?
如果你要开发一个大型项目,比如电商系统,需要各种各样的功能都具备,那么使用Full-Stack Web框架是第一选择。如果是一个像内容系统,功能有限,不需要面面俱到,那么用Non Full-Stack是第一选择。
Python Web框架大约有30多种,我介绍了几个典型的和运用面比较大的,上面三种在国内的公司中也是运用比较广泛的,能熟练用其中一种做开发,应该可以找到个web开发工作。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
秒杀系统流量削峰这事儿应该怎么做?
如果你看过秒杀系统的流量监控图的话,你会发现它是一条直线,就在秒杀开始那一秒是一条很直很直的线,这是因为秒杀请求在时间上高度集中于某一特定的时间点。这样一来,就会导致一个特别高的流量峰值,它对资源的消耗是瞬时的。 但是对秒杀这个场景来说,最终能够抢到商品的人数是固定的,也就是说100人和10000人发起请求的结果都是一样的,并发度越高,无效请求也越多。 但是从业务上来说,秒杀活动是希望更多的人来参与的,也就是开始之前希望有更多的人来刷页面,但是真正开始下单时,秒杀请求并不是越多越好。因此我们可以设计一些规则,让并发的请求更多地延缓,而且我们甚至可以过滤掉一些无效请求。 为什么要削峰 为什么要削峰呢?或者说峰值会带来哪些坏处? 我们知道服务器的处理资源是恒定的,你用或者不用它的处理能力都是一样的,所以出现峰值的话,很容易导致忙到处理不过来,闲的时候却又没有什么要处理。但是由于要保证服务质量,我们的很多处理资源只能按照忙的时候来预估,而这会导致资源的一个浪费。 这就好比因为存在早高峰和晚高峰的问题,所以有了错峰限行的解决方案。 削峰的存在,一是可以让服务端处理变得更加平稳,二是可以节省服务...
- 下一篇
如何系统地自学 Python?
一开始学习计算机技术和编程会有些困难:该选择哪个编程语言?用哪个IDE?以及更重要的,为什么选它? 在我看来,编程时最重要的事是选择最适合解决问题的工具。其次是选择自己最擅长的工具。如果我告诉你你应该用C++因为它是速度最快的编程语言之一,但是你没有过任何处理内存管理或者自己设计数据结构的经验的话,那这显然不是个好主意。你在编程中可能会很挣扎并且感觉很糟糕。 而Python解决了很多这些方面的问题。它比C++运行的慢的多,但也容易写的多。作为初学者的你可能往往并不太关心程序跑的有多快,你在意的只是搞一些酷炫的玩意,同时学一点编程的基本概念。 所以你需要做的第一个决定就是学习哪个编程语言。在数百种编程语言中,为什么初学者应该学习Python? 在生活中学会不断挖掘自己的潜力。我们都是一个普通人,可能并不清楚自己到底在哪方面占有优势。所以,学着在生活中找到自己的优势,并根据优势选择一定的就业方向。 不随波逐流。不要看周围的人做什么,自己就做什么,也许别人做的并不适合你。别人的优势很可能会成为你的劣势。所以,坚定自己的想法,让自己知道那些方面适合自己,自己可以胜任。 不断尝试可能成为自己的优...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装