Python的主流框架.docx
《Python的主流框架.docx》由会员分享,可在线阅读,更多相关《Python的主流框架.docx(5页珍藏版)》请在冰豆网上搜索。
![Python的主流框架.docx](https://file1.bdocx.com/fileroot1/2022-10/23/7f5139c5-8b06-452e-81fe-200555b981c5/7f5139c5-8b06-452e-81fe-200555b981c51.gif)
Python的主流框架
Python的主流框架详解
Scrapy:
Python的爬虫框架。
Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便。
Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。
Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。
它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。
Zerorpc:
基于ZeroMQ的高性能分布式RPC框架。
Zerorpc是一个基于ZeroMQ和MessagePack开发的远程过程调用协议(RPC)实现。
和Zerorpc一起使用的ServiceAPI被称为zeroservice。
Zerorpc可以通过编程或命令行方式调用。
rpc使构建分布式系统简单许多,在云计算的实现中有很广泛的应用。
rpc可以是异步的
python实现rpc,可以使用标准库里的SimpleXMLRPCServer,另外zerorpc是第三方库支持rpc
zerorpc是基于ZeroMQ和MessagePack,速度相对快,响应时间短,并发高。
特点:
不用修改代码即可显露python模块;通过命令行远程调用这些模块。
Buildbot:
基于Python的持续集成测试框架。
Buildbot是一个开源框架,可以自动化软件构建、测试和发布等过程。
每当代码有改变,服务器要求不同平台上的客户端立即进行代码构建和测试,收集并报告不同平台的构建和测试结果。
BuildBot是一个系统的自动化编译/测试周期最需要的软件,以验证代码的变化。
通过自动重建和测试每次发生了变化的东西,在建设迅速查明之前,减少不必要的失败。
有警告计数,图像大小,编译时间,以及其他参数,随着时间的推移可进行跟踪,让信息变得更明显,因此更容易得到改善。
Buildbot是一个持续集成系统,自动构建/测试周期。
通过自动重建和测试树每次事情发生了变化,迅速构建的问题被查明之前,其他开发人员带来不便的故障。
Diesel:
基于Greenlet的事件I/O框架。
Diesel提供一个整洁的API来编写网络客户端和服务器。
支持TCP和UDP。
注解:
Greenlet是python的一个C扩展,旨在提供可自行调度的‘微线程’,即协程。
generator实现的协程在yieldvalue时只能将value返回给调用者(caller)。
而在greenlet中,target.switch(value)可以切换到指定的协程(target),然后yieldvalue。
greenlet用switch来表示协程的切换,从一个协程切换到另一个协程需要显式指定。
Flask:
一个用Python编写的轻量级Web应用框架
Flask是一个使用Python编写的轻量级Web应用框架。
基于WerkzeugWSGI工具箱和Jinja2模板引擎。
Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。
Flask没有默认使用的数据库、窗体验证工具。
Cubes:
轻量级PythonOLAP框架
Cubes是一个轻量级Python框架,包含OLAP、多维数据分析和浏览聚合数据(aggregateddata)等工具。
Cubes的主要特性之一是它的逻辑模型,抽象物理数据并提供给终端用户层。
Kartograph.py:
创造矢量地图的轻量级Python框架。
Kartograph是一个Python库,用来为ESRI生成SVG地图。
Kartograph.py目前仍处于beta阶段,你可以在virtualenv环境下来测试。
Pulsar:
Python的事件驱动并发框架
Pulsar是一个事件驱动的并发框架,有了pulsar,你可以写出在不同进程或线程中运行一个或多个活动的异步服务器。
Pulsar作为一个实时和近实时大数据分析处理系统,包含了PulsarPipeline和PulsarReporting
PulsarReporting是一个基于大数据的可扩展和可定制的可视化平台,用户通过Pulsar可以提供更为清晰直观的数据洞察力,将错综复杂的数据和数据之间的关系,通过图形的形式呈现出来,从而给用户带来实时的洞察力和有效的决策力。
同时PulsarReporting也提供了非常友好的数据交互体验以及从宏观到微观的灵活切换,从而为用户对数据进行实时多角度分析和可视化成为可能。
Pulsar:
Python的事件驱动并发框架
Bottle:
微型PythonWeb框架。
Bottle是一个简单高效的遵循WSGI的微型pythonWeb框架。
说微型,是因为它只有一个文件,除Python标准库外,它不依赖于任何第三方模块。
整个框架只有一个文件,几十K,却自带了路径映射、模板、简单的数据库访问等web框架组件,确实是个可用的框架。
初学web开发可以拿来玩玩,其语法简单,部署也很方便。
Web2py:
全栈式Web框架
Web2py是一个为Python语言提供的全功能Web应用框架,旨在敏捷快速的开发Web应用,具有快速、安全以及可移植的数据库驱动的应用,兼容GoogleAppEngine。
web2py具有非常良好的架构设计和代码实现,其不依赖于除了Python标准库之外的任何第三方软件包,另一方面web2py的架构使得其很容易和第三方软件包协作。
web2py提供了一个基于web的IDE环境,您可以在这个环境中创建、修改、部署以及管理您的程序,大大提高您的工作效率。
Falcon:
构建云API和网络应用后端的高性能Python框架
Falcon是一个构建云API的高性能Python框架,它鼓励使用REST架构风格,尽可能以最少的力气做最多的事情。
Falcon是一个面向Hadoop的数据集和处理过程的管理平台。
Falcon本质上是通过数据处理引擎将数据集和处理过程的配置文件转化为重复的业务处理流程。
Falcon并不做任何繁重的工作,所有的过程和处理流管理都是由工作流调度器来完成的。
Falcon所做的就是维持实体之间的依赖关系。
Falcon给开发人员提供便捷。
注解:
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
Dpark:
Python版的Spark
DPark是一个类似MapReduce的基于Mesos(Apache下的一个集群管理器,提供了有效的、跨分布式应用或框架的资源隔离和共享等功能)的集群并行计算框架(ClusterComputingFramework),DPark是Spark的Python克隆,是一个Python实现的分布式计算框架,可以非常方便地实现大规模数据处理和迭代计算。
DPark由豆瓣实现,目前豆瓣内部的绝大多数数据分析都使用DPark完成,正日趋完善。
Django:
PythonWeb应用开发框架
Django应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响。
采用了MVC的框架模式,即模型M,视图V和控制器C。
Django是走大而全的方向,它最出名的是其全自动化的管理后台:
只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。
Tornado:
异步非阻塞IO的PythonWeb框架。
Tornado的全称是ToradoWebServer,从名字上看就可知道它可以用作Web服务器,但同时它也是一个PythonWeb的开发框架。
最初是在FriendFeed公司的网站上使用,FaceBook收购了之后便开源了出来。
得利于其非阻塞的方式和对epoll的运用,Tornado每秒可以处理数以千计的连接,因此Tornado是实时Web服务的一个理想框架。
。
我们开发这个Web服务器的主要目的就是为了处理FriendFeed的实时功能——在FriendFeed的应用里每一个活动用户都会保持着一个服务器连接。
Web.py:
轻量级的PythonWeb框架
webpy的设计理念力求精简(Keepitsimpleandpowerful),源码很简短,只提供一个框架所必须的东西,不依赖大量的第三方模块,它没有URL路由、没有模板也没有数据库的访问。
相对flask和Django,web.py更适合初学者来学习和了解web开发的基础知识。
web.py是公开的,无论用于什么用途都是没有限制的。
而且相当的小巧,应当归属于轻量级的web框架。
但这并不影响web.py的强大,而且使用起来很简单、很直接。
在实际应用上,web.py更多的是学术上的价值,因为你可以看到更多web应用的底层,这在当今“抽象得很好”的web框架上是学不到的:
)如果想了解更多web.py,可以访问web.py的官方文档。
以上内容由煜嘉科技有限公司整理提供的,欢迎大家补充。