Python作为当前最火爆最热门,也是最主要的Web开发语言之一,在其二十多年的历史中出现了数十种Web框架,比如Django、Tornado、Flask、Twisted、Bottle和Web.py等,它们有的历史悠久,有的发展迅速,还有的已经停止维护。
下面是一些比较有代表性的框架:
发布于2003年,是当前Python世界里最负盛名且最成熟的Web框架,最初被用来制作在线新闻的Web站点。Django的各模块之间结合得比较紧密,所以在功能强大的同时又是一个相对封闭的系统(依然是可以自定义的),但是其健全的在线文档及开发社区,使开发者在遇到问题时能找到解决办法。
一个强大的、支持协程、高效并发且可扩展的Web服务器,发布于2009年9月,应用于FriendFeed、Facebook等社交网站。它的强项在于可以利用异步协程机制实现高并发的服务。
Python Web框架家族里比较年轻的一个,发布于2010年,它吸收了其他框架的优点并且把自己的主要领域定义在了微小项目上,以短小精干,简洁明了著称。
一个有着十多年历史的开源事件驱动框架。它不像前三种着眼于Web应用开发,而是适用从传输层到自定义应用协议的所有类型的网络程序的开发,并能在不同的操作系统上提供很高的运行效率。但是,目前对Python3的支持有限,建议使用Python2.7。
这么多的Web框架,我们没有那么多的精力全都学一遍,也不可能全部精通,必然要有所取舍,那么该如何选择呢?有哪些可以参考的原则呢?
下面的原则不一定正确,但可以作为参考:
首先介绍一下Django,Django具有以下特点:
那么,我们根据前面的选择原则我们来逐条对比一下:
从Github的数据来看,Django的开发非常活跃,迭代速度也非常快。
Django以要素齐全、工具丰富、框架庞大著称,基本上别的框架有的它有,别的框架没有的它也有,如果Django满足不了需求,那么别的框架同样也一样。
Django有很长的开发和实践过程,或早或晚的文档、教程、帮助、博客等等非常多,资料更新速度也很快,比如博主个人网站的Django教程,大家没事可以逛逛,^-^。
一个框架能否流行起来,对新手入门是否友好非常关键。Django在这一点做的非常好。
不能光说优点,也说说一些缺点:
其实我不认同这一条,我真不认为这是个缺点。
首先,对于新手,Django集成好的工具和部件,让你无须再费脑力去学习如何安装、调试、集成、兼容别的工具。Django帮你把它们都集成好了,而且保证兼容性、可用性和方便性,就好比联想一体机,开机即用,效率也高。而一些如flask的框架,虽然精简,但是你要自己安装各种工具、ORM、插件等等,好比DIY电脑,在用之前,要知道买什么配件,怎么搭配,怎么组装,怎么配置效率才高,将新手的热情大量消耗在非关键性的内容上。
其次,对于老手,Django也是开放的,你完全可以关闭不必要的功能,忽略不使用的组件,或者自定义希望的组件,包括ORM和Template在内,都可以自由选择。
因此,我认为Django系统庞大、捆绑工具不是问题。
从本质上来说,Tornado在异步协程机制实现高并发的服务上要更强一点。Django在这方面有追赶的目标,但这不是说Django就差到不能用了,对么?
想要熟练地使用Django进行Web开发,设计生产环境可用的,能够应对一定规模访问量的Web应用,开发者要学会的远远不止Django本身。Python基础、环境搭建、前端语言、API设计、网站架构、系统管理、持续集成、服务化、数据处理、并发处理等等,都是相关的知识领域,包括但不限于以下的内容:
除此之外,还要对业务有深刻理解,能够写出可维护性足够高的代码。当然,以上都是对经验丰富的开发者而言,对于新手刚入门者,我们朝着这个目标努力学习就好。
下面是基于Python的Web开发技术栈:
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有