13个Python Web框架较量,你想行使哪个呢?
CherryPy的文档包括一个利便的教程,先容了该措施的各个方面。与其他框架教程差异,它不会引导完成一个完备的端到端应用措施,但它如故有效。这些文档提供了有关各类场景中陈设的利便声名,包罗假造主机,通过Apache和Nginx的反向署理以及很多其他方案。 CherryPy在引擎下行使池化线程,更好地支持多线程处事器适配器。假如想实行其他要领,CherryPy的非官方第三方分支互换asyncio协程而不是线程。 Falcon 假如正在构建基于REST的API而不是其他任何对象,那么Falcon提供的绝对须要。它的计划精简而快速,险些没有尺度库之外的依靠相关。 Falcon得到“轻浮”标签的缘故起因很大一部门与框架中的代码行数无关。这是由于Falcon在应用措施上险些没有任何布局。Falcon应用措施所要做的就是指出哪些函数映射到哪些API端点。从给定端点返回JSON只需配置路由并通过Python尺度库中的json.dumps函数从中返回数据。对Python 3的async的支持尚未落入Falcon,但正在全力实现这一方针。 Falcon还回收了理智的开箱即用默认配置,因此安装时险些不必要修改。譬喻,对付未明晰声明的任何路由,默认环境下会激发404。假如要将错误返回给客户端,可以激发与框架绑缚在一路的很多库存非常中的一个(譬喻HTTPBadRequest)或行使泛型falcon.HTTPError非常。假如必要为给定蹊径举办预处理赏罚或后处理赏罚,Falcon也会为这些路径提供挂钩。 Falcon对API的存眷意味着用传统的HTML用户界面构建Web应用措施险些没有。譬喻,表单处理赏罚成果和CSRF掩护器材险些不存在。也就是说,Falcon提供了优雅的选项来扩展其成果,因此可以构建更伟大的项目。除了上面提到的挂钩机制之外,还可以找到一个用于建设中间件的界面,该界面可用于包装全部Falcon的API。 Falcon的文档与其他框架对比较量细长,但仅仅由于它的包围范畴较小。用户指南包罗全部首要成果的正式慢慢演练,以及一个快速入门部门,可让您查察带或不带注释的示例代码。 Flask 关于Python中的Web框架的大大都接头都是从Flask开始提到的,而且有充实的来由。 Flask是一个成熟的,易于领略的框架,普及行使且很是不变。行使Flask举办轻量级Web项目或根基REST API险些不行能堕落,但假如试图构建更大的对象,将面对沉重的事变。 Flask的焦点吸引力在于其进入门槛低。一个根基的“hello world”Flask应用措施可以在少于10行的Python中配置。普及行使的HTML模板体系Jinja2附带了使渲染文本变得轻易的框架,可是Jinja2可以换成任何数目的其他模板引擎(譬喻Mustache),可能可以本身下手。 简捷的名称,Flask默认省略了很多细节。譬喻,它没有开箱即用的数据层或ORM,也没有相同表单验证的划定。可是,它可以通过扩展举办扩展,个中有几十个,包罗很多常见用例,如缓存,表单处理赏罚和验证,数据库毗连等。这种默认计划应承开始计划具有绝对最小成果的Flask应用措施,然后仅在必要时将所需的部门分层。 Flask的文档平和可亲,易于阅读。快速入门文档很是精彩地辅佐启动和运行,同时还表明白为简朴的Flask应用措施所做的默认选择的重要性,而且API文档布满了怎样行使全部内容的精采示例。同样优越的是“片断”的荟萃,这些片断是怎样行使Flask完成特定使命的快速和肮脏的示例,譬喻假如存在怎样返回工具,假如不存在则返回404错误。 Flask在2018年早些时辰宣布了它的里程碑1.0版本,Python 2.6和Python 3.3是支持的最低版本,而且它的很多举动最终都是一成稳固的。Flask没有明晰支持Python的异步语法,可是为了满意这种需求,已经剥离了一个名为Quart的与Flask相干的API兼容变体。 Pyramid 小而轻,Pyramid比Django更靠近Flask乃至Falcon。因此,它很是得当于将现有Python代码果真为REST API,可能为开拓职员完成大部门沉重使命的Web项目提供焦点的使命。 描写Pyramid极简主义的一个好要领是“无计策”,这是在文档部门中行使的一个术语,用于接头Pyramid怎样与其他Web框架形成比拟。你行使什么样的数据库或什么样的模板说话不是金字塔的存眷点。 “Pyramid仅提供一种机制来映射URL以查察代码,”文档说,“以及一组用于挪用这些视图的约定。可以自由地在您的应用措施中行使切合您需求的第三方组件。“ 构建根基的Pyramid应用措施只必要很少的事变。与Bottle和Flask一样,Pyramid应用措施可以包括单个Python文件,除了框架自己的文件。一个简朴的单路径API不必要十几行代码。个中大部门是来自... import语句和配置WSGI处事器的样板。 默认环境下,Pyramid包括Web应用措施中常见的几个项目,但它们是作为要拼接在一路的组件提供的,而不是完备的办理方案。譬喻,包罗对用户会话的支持,它乃至还带有CSRF掩护。可是对Django提供的用户帐户(譬喻登录或帐户打点)的支持不是买卖营业的一部门。您必需本身转动或通过插件添加它。表单处理赏罚和数据库毗连也是云云。 Pyramid停止过于极小的一种要领是通过提供从Pyramid项目建造模板的要领来重用或从头行使先前的事变。这些模板,即Scaffolds,天生一个带有简朴路由和一些入门HTML / CSS模板的Pyramid应用措施。默认环境下,Pyramid包括的支架包罗一个示例启动项目和一个通过常用的Python库SQLAlchemy毗连到数据库的项目。 Pyramid在测试和调试器材方面同样细长。在Pyramid应用措施中绑缚debugtoolbar扩展,将在应用措施天生的每个网页上得到一个可点击图标,该图标天生有关应用措施执行的具体信息,包罗产生错误时的具体回溯。还存在记录和单位测试,纵然从这个轻量级的框架中解除两个看起来也很愚笨的项目。 Pyramid的文档很棒。除了快速赏识基本常识和教程式演练之外,还可以找到一组社区孝顺的教程,用于构建各类项目和常用食谱的烹调手册。后者包罗针对大量方针情形的陈设技能,从Google App Engine到Nginx。 Pyramid支持Python 2和Python 3,但不行使Python 3的异步语法。有关如安在Pyramid中操作异步的线索,请参阅aiopyramid项目,个中包罗用于异步驱动的“hello world”应用措施的脚手架。 Tornado Tornado是针对特定用例的另一个小框架。Tornado专为构建异步收集应用措施而计划,很是得当建设同时打开大量收集毗连并使其保持勾当状态的处事,即涉及WebSockets或长轮询的任何内容。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |