人工智能的火爆,让相关技术也水涨船高,其中python语言受益最大,ieee发布的2017年编程语言排行榜上python高居首位。python具有丰富和强大的库,被称为万能胶水,也有许多优秀的框架,大大降低了开发门槛。
2017年编程语言排行榜top20在github中筛选出15个最受欢迎的python开源框架。这些框架包括事件i/o,olap,web开发,高性能网络通信,测试,爬虫等,让我们一起来看一下这些框架。
django: python web应用开发框架
django 应该是最出名的python框架,gae甚至erlang都有框架受它影响。django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起orm,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台,当前最新版本是2.0.2。
flask:一个用python编写的轻量级web应用框架
flask是一个使用python编写的轻量级web应用框架。基于werkzeug wsgi工具箱和jinja2模板引擎。flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。flask没有默认使用的数据库、窗体验证工具。flask的最新版本是0.12.2.
web2py:全栈式web框架
web2py是一个为python语言提供的全功能web应用框架,旨在敏捷快速的开发web应用,具有快速、安全以及可移植的数据库驱动的应用,兼容google app engine。
bottle: 微型python web框架
bottle是一个简单高效的遵循wsgi的微型python web框架。说微型,是因为它只有一个文件,除python标准库外,它不依赖于任何第三方模块。
tornado:异步非阻塞io的python web框架
tornado的全称是torado web server,从名字上看就可知道它可以用作web服务器,但同时它也是一个python web的开发框架。最初是在friendfeed公司的网站上使用,facebook收购了之后便开源了出来。
webpy: 轻量级的python web框架
webpy的设计理念力求精简(keep it simple and powerful),源码很简短,只提供一个框架所必须的东西,不依赖大量的第三方模块,它没有url路由、没有模板也没有数据库的访问。
diesel:基于greenlet的事件i/o框架
diesel提供一个整洁的api来编写网络客户端和服务器。支持tcp和udp。
cubes:轻量级python olap框架
cubes是一个轻量级python框架,包含olap、多维数据分析和浏览聚合数据(aggregated data)等工具。
kartograph.py: 创造矢量地图的轻量级python框架
kartograph是一个python库,用来为esri生成svg地图。kartograph.py目前仍处于beta阶段,你可以在virtualenv环境下来测试。
pulsar:python的事件驱动并发框架
pulsar是一个事件驱动的并发框架,有了pulsar,你可以写出在不同进程或线程中运行一个或多个活动的异步服务器。
falcon:构建云api和网络应用后端的高性能python框架
falcon是一个构建云api的高性能python框架,它鼓励使用rest架构风格,尽可能以最少的力气做最多的事情。
dpark:python版的spark
dpark 是一个类似mapreduce 的基于mesos(apache 下的一个集群管理器,提供了有效的、跨分布式应用或框架的资源隔离和共享等功能)的集群并行计算框架(cluster computing framework),dpark是spark的python克隆,是一个python实现的分布式计算框架,可以非常方便地实现大规模数据处理和迭代计算。dpark由豆瓣实现,目前豆瓣内部的绝大多数数据分析都使用dpark完成,正日趋完善。
buildbot:基于python的持续集成测试框架
buildbot是一个开源框架,可以自动化软件构建、测试和发布等过程。每当代码有改变,服务器要求不同平台上的客户端立即进行代码构建和测试,收集并报告不同平台的构建和测试结果。
zerorpc:基于zeromq的高性能分布式rpc框架
zerorpc是一个基于zeromq和messagepack开发的远程过程调用协议(rpc)实现。和 zerorpc 一起使用的 service api 被称为 zeroservice。zerorpc 可以通过编程或命令行方式调用。
scrapy:python的爬虫框架
scrapy是一个使用python编写的,轻量级的,简单轻巧,并且使用起来非常的方便。