前言¶
为什么是CherryPy?¶
Cherrypy是Python最古老的Web框架之一,但许多人并不知道它的存在。其中一个原因是,Cherrypy不是一个完整的堆栈,它内置了对多层体系结构的支持。它既不提供前端实用程序,也不会告诉您如何使用存储设备。相反,Cherrypy的做法是让开发人员做出这些决定。与其他著名框架相比,这是一个对比立场。
Cherrypy有一个干净的界面,在为您提供可靠的脚手架的同时,尽最大努力避开您的道路。
Cherrypy的典型用例仅从具有用户前端的常规Web应用程序(比如博客、CMS、门户、电子商务)转到Web服务。
以下是您选择Cherrypy的一些原因:
简单性
用Cherrypy开发是一项简单的任务。“hello,world”只有几行长,不需要开发人员同时学习整个(尽管非常容易管理)框架。框架非常简单;也就是说,它非常好地遵循了Python的约定(代码稀疏且干净)。
与J2EE和Python最流行和可见的Web框架(django、zope、pylons和turbogears)形成对比。在所有这些研究中,学习曲线都是巨大的。在这些框架中,“hello,world”要求程序员建立一个跨越多个文件的大型框架,并键入许多样板代码。Cherrypy之所以成功,是因为它不包括其他框架的膨胀,允许程序员快速编写Web应用程序,同时仍保持较高的组织和可伸缩性。
Cherrypy也是非常模块化的。核心是快速和干净的,扩展特性易于编写和使用代码或优雅的配置系统插入。主要组件(服务器、引擎、请求、响应等)都是可扩展的(甚至是可替换的)并且管理良好。
简而言之,Cherrypy允许开发人员使用这个框架,而不是与它对抗或围绕它工作。
功率
奇瑞利用了 Python 的所有力量。python是一种动态语言,允许快速开发应用程序。Python还有一个广泛的内置API,它简化了Web应用程序的开发。然而,更广泛的是,第三方库可用于Python。从对象关系映射器到表单库,再到自动python优化器、Windows exe生成器、图像库、电子邮件支持、HTML模板引擎等,奇瑞派应用程序与普通的python应用程序一样。如果你想使用这些出色的工具,奇瑞不会妨碍你。
到期
在开发实际应用程序时,成熟度非常重要。与许多其他Web框架不同,Cherrypy有许多最终的、稳定的版本。它经过了全面的测试、优化,并被证明对现实世界的使用是可靠的。API不会突然改变和破坏向后的兼容性,因此即使在当前版本系列的后续更新中,您的应用程序也可以继续工作。
Cherrypy也是一个“3.0”项目:第一版的Cherrypy设定了基调,第二版让它发挥作用,第三版让它变得美丽。每个版本都建立在从以前的经验教训的基础上,为开发人员提供了一个更好的工作工具。
社区
Cherrypy有一个专门的社区,开发部署的Cherrypy应用程序,愿意并准备在Cherrypy邮件列表或Gitter上帮助您。开发人员还经常使用列表,经常回答问题并实现最终用户请求的功能。
可部署性
与许多其他的python web框架不同,部署cherrypy应用程序有一些经济高效的方法。
开箱即用,Cherrypy包括自己的生产就绪的HTTP服务器来承载您的应用程序。Cherrypy还可以部署在任何符合wsgi的网关上(一种用于连接多种类型Web服务器的技术):mod_wsgi、fastcgi、scgi、iis、uwsgi、tornado等。反向代理也是一种常见且简单的设置方法。
此外,Cherrypy是纯python,与python 2.3兼容。这意味着Cherrypy将在所有主要的平台上运行,而python将在这些平台上运行(windows、macosx、linux、bsd等)。
webfaction.com
_由Cherrypy的发明者运行,是一个提供Cherrypy托管软件包(以及其他一些软件包)的商业Web主机。它是免费的!
所有Cherrypy都获得了开源BSD许可,这意味着Cherrypy可以以零成本商业化使用。
从这里到哪里?
退房 tutorials 开始享受乐趣吧!
成功案例¶
您对Cherrypy很感兴趣,但您希望从使用它的人那里听到更多的信息,或者简单地查看运行它的产品或应用程序。
如果您希望在此列出您的Cherrypy Powered网站或产品,请通过我们的 mailing list 或 Gitter .
在Cherrypy上运行的网站¶
Hulu Deejay and Hulu Sod -Hulu在一些项目中使用Cherrypy。”服务需要非常高的性能。 Python ,还有奇瑞, gunicorn 和gevent提供了更多。”
Netflix -Netflix在其基础设施中使用CherryPy作为构建基块:“为具有请求的大型应用程序提供RESTful API,为Web界面提供CherryPy和Bolt,并使用SciPy处理数据。”
Urbanility -法国雷恩当地社区资产网站。
MROP Supply -工业设备webshop,使用cherrypy 3.2.2开发,使用python 3.2,使用libs: Jinja2-2.6 ,davispuh-mysql-for-python-3-3403794,pyenchant-1.6.5(搜索拼写)。”我从.NET开发部门过来,发现python和cherrypy的极简风格令人惊讶。没有不必要的开销-建立你所需要的一切没有额外的绒毛。我是个粉丝!”
CherryMusic -用python编写的音乐流服务器:将您自己的音乐收藏流到所有设备!CherryMusic是开源的。
YouGov Global -国际市场研究公司每年对CherryPy进行数百万次调查。
Aculab Cloud -云上的语音和传真应用程序。一个简单的Python电话API,C,C,+,VB等。网站以及所有的前端和后端Web服务都是用cherrypy构建的,前面是nginx(只处理ssh和反向代理),在两个区域的AWS上运行。
Learnit Training -荷兰IT、管理和通信培训公司网站。基于cherrypy 3.2.0和python 2.7.3构建,具有 oursql 和 DBUtils 类库等。
Linstic -浏览器中的便签(带有链接)。
Almad's Homepage -带博客的简单主页。
Fight.Watch -用于战斗游戏的twitch.tv网站。基于cherrypy 3.3.0和python 2.7.3,以及jinja 2.7.2和sqlacalchemy 0.9.4。
基于Cherrypy的产品¶
SABnzbd -用python编写的开源二进制新闻阅读器。
Headphones -Sabnzbd的第三方附加组件。
SickBeard -“Sick Beard是新闻组用户的一个pvr(具有有限的Torrent支持)。它会监视您最喜爱的节目的新集,当它们被发布时,它会下载它们,对它们进行排序和重命名,还可以选择为它们生成元数据。”
TurboGears -快速的Web开发MegaFramework。涡轮齿轮1.x使用了CherryPy。Cherrypy是涡轮齿轮的底层应用服务器。它负责接收用户浏览器的请求,解析它们,并将它们转换为Web应用程序的python代码。它的作用类似于其他编程语言中使用的应用服务器”。
Indigo -“智能家庭控制服务器,集成家庭控制硬件模块,为您的家庭提供控制。Indigo的内置Web服务器和客户机/服务器体系结构使您可以从其他Mac、PC、Internet平板电脑、PDA和移动电话远程控制和访问您的家庭。”
SlikiWiki -wiki基于cherrypy构建,具有wikiwords、自动反向链接、网站地图生成、全文搜索、锁定并发编辑、RSS源嵌入、每页访问控制列表以及使用PyTextile标记的页面格式。”
read4me -read4me是一个python feed reading Web服务。
Firebird QA tools -Firebird质量保证工具基于Cherrypy。
salt-api -一个用于salt的RESTAPI,基础结构编排工具。
以奇瑞为灵感的产品¶
OOWeb -“OOWEB是一个轻量级的、用于Java应用程序的嵌入式HTTP服务器,它将对象映射到URL目录、将方法映射到页面和形成/查询字符串参数作为方法参数。Ooweb最初的灵感来源于Cherrypy。”