今年年初,有一件科学界的大事儿曾刷爆朋友圈:引力波的发现。这是LIGO***直接探测到引力波和***观测到双黑洞碰撞与并合,探测到的引力波是由13亿光年之外的两颗黑洞在合并的***阶段产生的,经过13亿光年的时空旅行,***被美国的“激光干涉引力波天文台”(LIGO)的两台孪生引力波探测器探测到的。
虽然后期有人对此次“单次引力波发现”产生质疑,但是在IT圈,它还捧火了一个一个东西:Python。今天我们就来看看,在GitHub等开源网站中***的Python开源框架都有哪些?
1.Django
Django是一款用Python语言写的免费开源的 Python Web应用开发框架,它遵循模型 -视图-控制器(MVC)的架构模式。它是由非营利Django维护软件基金会(DSF)和3条款BSD许可下可用,鼓励快速发展和实用的设计。
Django同时是一款在数据库功能、后台功能、末班系统、网址匹配、缓存系统等方面有“先天”优势的开源框架。它可以通过几行简单的代码就让你的网站拥有一个强大的后台,轻松管理你的内容;强大,易扩展的模板系统,设计简易,代码,样式分开设计,更容易管理;如果与memcached或其它的缓存系统联用,更出色的表现,更快的加载速度。
同时,Django也可以与Jython运行在任何J甲骨文的JAVA EE应用服务器上;尤其在管理能力上十分突出。
2.Twisted
Twisted是一款事件驱动的网络编程框架,支持许多常见的传输及应用层协议,如TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。还支持Unix domain sockets,在MIT许可下应用。
Twisted附带了一个可以web服务器上运行的WSGI,它能够为其他Python web应用程序允许开发人员使用的服务器定制HTTP服务。
据了解,Twisted诞生于2000年初,在当时的网络游戏开发者看来,无论他们使用哪种语言,手中都鲜有可兼顾扩展性及跨平台的网络库。如今,Twisted依然属于一个事件驱动型的网络引擎,这里程序的执行流由外部事件来决定。
3.Tornado
Tornado源意为龙卷风,这里是一款可扩展的,非阻塞的Web服务器,应用开发框架,以及异步联网库。它最初是在FriendFeed开发(在2009年被Facebook收购)。Tornado是高度灵活,专门设计为开发人员和第三方工具厂商提供了一个开放环境。已有部分应用程序接口可以利用并附带参考书目,内容从开发环境接口到连接实现。另外,它还配备了一个WSGI服务器,其他WSGI Python应用程序(和框架)也可以使用。在开源和Apache 2.0许可下可用。
有开发者认为,Tornado既是一个web server,也是web framework。而它作为web server 采用的是asynchronous IO的网络模型,这是一种很高效的模型。Tornado作为web server,提供了web framework的api,可以来直接构建自己的web程序。
自从2009年9月10日发布以来,TornadoTornado已经获得了很多社区的支持,并且在一系列不同的场合得到应用。除FriendFeed和Facebook外,还有很多公司在生产上转向Tornado,包括Quora、Turntable.fm、Bit.ly、Hipmunk以及MyYearbook等。
除了以上三种之外,还有Diesel、Flask、Cubes、Kartograph、Pulsar、Web2py、Falcon、DPark、Buildbot、Zerorpc、Bottle、webpy、Scrapy还有很多用于机器学习应用场景的开源框架,笔者在这里就不一一介绍了。