1、Django: Python Web应用开发框架
python
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,nginx
便是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。程序员
Django 应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。Django是走大而全的方向,它最出名的是其全自动化的管理后台:只须要使用起ORM,作简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。web
Django提供的方便,也意味着Django内置的ORM跟框架内的其余模块耦合程度高。应用程序必须使用Django内置的ORM,不然就不能享受到框架内提供的种种基于其ORM的便利;理论上能够切换掉其ORM模块,数据库
但这就至关于要把装修完毕的房子拆除从新装修,倒不如一开始就去毛胚房作全新的装修。Django的卖点是超高的开发效率,其性能扩展有限;采用Django的项目,在流量达到必定规模后,都须要对其进行重构,才能知足性能的要求。django
2、Diesel:基于Greenlet的事件I/O框架
编程
Diesel提供一个整洁的API来编写网络客户端和服务器。支持TCP和UDP。后端
你应该使用diesel来编写你的下一个网络应用。得益于Python使得diesel语法很是整洁,发展步伐很是迅速。非阻塞I/O使得diesel很是快速而且容易扩展。greenlets使得diesel有了unwind(to(callbacks(no)))。设计模式
nose使得测试变得容易。最后,Flask使得你不须要写一个新的网络框架来使用diesel。安全
须要框架项目实战视频 + Python学习交流 643692991
3、Flask:一个用Python编写的轻量级Web应用框架
Flask是一个使用Python编写的轻量级Web应用框架。基于Werkzeug WSGI工具箱和Jinja2 模板引擎。 Flask使用BSD受权。 Flask也被称为“microframework”,由于它使用简单的核心,用extension增长其余功能。
Flask没有默认使用的数据库、窗体验证工具。然而,Flask保留了扩增的弹性,能够用Flask-extension加入这些功能:ORM、窗体验证工具、文件上传、各类开放式身份验证技术。
一、内置开发用服务器和debugger
二、集成单元测试(unit testing)
三、RESTful request dispatching
四、使用Jinja2模板引擎
五、支持secure cookies(client side sessions)
六、100% WSGI 1.0兼容
七、Unicode based
八、详细的文件、教学
九、Google App Engine兼容
十、可用Extensions增长其余功能
4、Cubes:轻量级Python OLAP框架
Cubes是一个轻量级Python框架,包含OLAP、多维数据分析和浏览聚合数据(aggregated data)等工具
Cubes的主要特性之一是它的逻辑模型,抽象物理数据并提供给终端用户层。
须要框架项目实战视频 + Python学习交流 643692991
5、Kartograph.py:创造矢量地图的轻量级Python框架
Kartograph是一个Python库,用来为ESRI生成SVG地图。Kartograph.py目前仍处于beta阶段,你能够在virtualenv环境下来测试。
6、Pulsar:Python的事件驱动并发框架
Pulsar是一个事件驱动的并发框架,有了pulsar,你能够写出在不一样进程或线程中运行一个或多个活动的异步服务器。
附带如下功能
一、Socket服务器
二、WSGI服务器
三、JSON-RPC
四、Web Sockets
五、任务队列
六、Shell
七、测试包
八、django集成
对全部请求都返回“Hello World!”做为响应
须要框架项目实战视频 + Python学习交流 643692991
7、Web2py:全栈式Web框架
Web2py是一个为Python语言提供的全功能Web应用框架,旨在敏捷快速的开发Web应用,具备快速、安全以及可移植的数据库驱动的应用,兼容Google App Engine。
8、Falcon:构建云API和网络应用后端的高性能Python框架
Falcon是一个构建云API的高性能Python框架,它鼓励使用REST架构风格,尽量以最少的力气作最多的事情。
一、经过URI模板和资源类的路由
二、经过请求和响应类访问headers和bodies
三、经过异常基类响应HTTP错误等等
须要框架项目实战视频 + Python学习交流 643692991
9、Dpark:Python版的Spark
DPark是一个基于Mesos的集群计算框架(cluster computing framework),是Spark的Python实现版本,相似于MapReduce,可是比其更灵活,能够用Python很是方便地进行分布式计算,而且提供了更多的功能以便更好
的进行迭代式计算。DPark的计算模型是基于两个中心思想的:对分布式数据集的并行计算以及一些有限的能够在计算过程当中、从不一样机器访问的共享变量类型。这个的目标是为了提供一种相似于global address space
programming model的工具,例如OpenMP,可是咱们要求共享变量的类型必须是那些很容易在分布式系统当中实现的,当前支持的共享变量类型有只读的数据和支持一种数据修改方式的累加器(accumulators)。
DPark具备的一个很重要的特性:分布式的数据集能够在多个不一样的并行循环当中被重复利用。这个特性将其与其余数据流形式的框架例如Hadoop和Dryad区分开来。
一个word counting程序
上面的脚本能够无修改的在Mesos集群上运行,只需稍微修改一下命令行参数:
10、Buildbot:基于Python的持续集成测试框架
Buildbot是一个开源框架,能够自动化软件构建、测试和发布等过程。每当代码有改变,服务器要求不一样平台上的客户端当即进行代码构建和测试,收集并报告不一样平台的构建和测试结果。
须要框架项目实战视频 + Python学习交流 643692991
11、Zerorpc:基于ZeroMQ的高性能分布式RPC框架
Zerorpc是一个基于ZeroMQ和MessagePack开发的远程过程调用协议(RPC)实现。和 Zerorpc 一块儿使用的 Service API 被称为 zeroservice。Zerorpc 能够经过编程或命令行方式调用。
它容许你:
一、不用修改代码便可显露python模块
二、经过命令行远程调用这些模块
如何把你代码中的对象暴露为一个zeroservice?
运行以上代码,在另外一个终端,尝试链接这个zeroservice
12、Bottle: 微型Python Web框架
Bottle是一个简单高效的遵循WSGI的微型python Web框架。说微型,是由于它只有一个文件,除Python标准库外,它不依赖于任何第三方模块。
一、Routing:把请求映射到函数,创建简洁动态的URLs
二、Templates:采用内置模板引擎,同时还支持 mako, jinja2, cheetah 等第三方模板
三、Utilities:便捷地读取表单数据、上传文件、 cookies、HTTP头信息和其它 HTTP相关的元数据
四、Server:内置HTTP开发服务器,而且支持 paste, fapws3, bjoern, Google App Engine, Cherrypy 或者其它任何WSGI HTTP 服务器
运行上面的代码,访问http://localhost:8080/hello/bottle试试。
经过
或者
安装最新稳定版,或者下载bottle.py (不稳定)到你的工程目录。Bottle运行于Python 2.5+ and 3.x环境下。
须要框架项目实战视频 + Python学习交流 643692991
十3、Tornado:异步非阻塞IO的Python Web框架
Tornado的全称是Torado Web Server,从名字上看就可知道它能够用做Web服务器,但同时它也是一个Python Web的开发框架。最初是在FriendFeed公司的网站上使用,FaceBook收购了以后便开源了出来。
做为Web框架,是一个轻量级的Web框架,相似于另外一个Python web 框架Web.py,其拥有异步非阻塞IO的处理方式。
做为Web服务器,Tornado有较为出色的抗负载能力,官方用nginx反向代理的方式部署Tornado和其它Python web应用框架进行对比,结果最大浏览量超过第二名近40%。
此外,它的源代码也是Python开发者学习与研究的绝佳材料。
如下是Tornado的Hello World示例程序。
十4、webpy: 轻量级的Python Web框架
webpy的设计理念力求精简(Keep it simple and powerful),源码很简短,只提供一个框架所必须的东西,不依赖大量的第三方模块,它没有URL路由、没有模板也没有数据库的访问。这样的优势是,
框架给开发带来的限制少,能够根据本身的需求进行定制。缺点就是,不少东西都须要本身亲自动手开发。
虽然webpy的做者Aaron H.Swartz,一位伟大的程序员在2013年1月11日自杀身亡,结束了短暂的26年生命。可是,做为一个开源项目,目前仍是有不少开发者在持续更新。
webpy很是的简单,语法几乎跟Python同样,如下是一个简单的示例:
须要框架项目实战视频 + Python学习交流 643692991
十5、Scrapy:Python的爬虫框架
网络爬虫,是在网上进行数据抓取的程序,使用它可以抓取特定网页的HTML数据。虽然咱们利用一些库开发一个爬虫程序,可是使用框架能够大大提升效率,缩短开发时间。Scrapy是一个使用Python编写的,
轻量级的,简单轻巧,而且使用起来很是的方便。
Scrapy使用了Twisted异步网络库来处理网络通信。总体架构大体以下(注:图片来自互联网):
Scrapy主要包括了如下组件:
一、引擎,用来处理整个系统的数据流处理,触发事务。
二、调度器,用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回。
三、下载器,用于下载网页内容,并将网页内容返回给蜘蛛。
四、蜘蛛,蜘蛛是主要干活的,用它来制订特定域名或网页的解析规则。
五、项目管道,负责处理有蜘蛛从网页中抽取的项目,他的主要任务是清晰、验证和存储数据。当页面被蜘蛛解析后,将被发送到项目管道,并通过几个特定的次序处理数据。
六、下载器中间件,位于Scrapy引擎和下载器之间的钩子框架,主要是处理Scrapy引擎与下载器之间的请求及响应。
七、蜘蛛中间件,介于Scrapy引擎和蜘蛛之间的钩子框架,主要工做是处理蜘蛛的响应输入和请求输出。
八、调度中间件,介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应。
使用Scrapy能够很方便的完成网上数据的采集工做,它为咱们完成了大量的工做,而不须要本身费大力气去开发。