13个Python Web框架比较,你想使用哪个呢?
Weppy的恒久打算包罗支持异步和套接字作为初级一流实体。 Weppy的开拓职员打算在2.0版本中引入这些成果,然后要求全部将来版本的Weppy行使Python 3.7或更高版本。 ![]() Zope2 Zope不合用于简朴的RESTful API(每Bottle或Flask),乃至不合用于具有交互性的根基网站(à la Django)。相反,它意味着是一个完备的企业级应用措施处事器仓库,相同于Java产物。该文档将该框架描写为“对组件开拓职员,整合者和Web计划职员最有效。”一个首要的第三方产物Plone CMS行使Zope作为其基本,并作为Zope一连开拓的首要驱动力。 Zope通过从Web获取哀求,将哀求的参数与内部工具数据库(ZODB)匹配,并行使哀求的GET或POST参数执行该工具来事变。无论从工具返回什么,城市返回给客户端。 Zope行使此数据库工具体系来简化使命,譬喻分派粒度工具权限,为工具提供担任条理布局,以及处理赏罚数据库工具的事宜和回滚。 因为Zope的尺寸和伟大性,安装必要一些事变;这不是简朴地将源解压缩到项目子文件夹中的题目。一些配置进程包罗编译C模块,因此在Windows上安装很棘手。自2010年以来,Zope的预打包Windows二进制文件尚未更新,而且环绕它们的文档状态使得很难确定配置的最佳实践。可是,现实框架的文档很是好。 Zope2 Book是一本很是具体的纲领。 当启动Zope并毗连随处事器时,将看到Web UI,可以在个中建设和编辑ZODB工具。工具回收三种根基脚色之一:内容,逻辑和暗示,而且可以包括文档(根基上,任何具有MIME范例的文件),Python剧本和HTML模板。 模板可所以两种范例之一:新的和更机动的Zope页面模板(ZPT)体系,或旧的和更根基的DTML标志体系。ZPT行使HTML标志中的属性来指示数据的安排位置,从而可以更轻松地行使传统的HTML器材计划模板。可是ZPT语法必要一些时刻来风俗。 Zope声称其面向工具要领的利益之一是体系中的每个操纵,无论它浸染于何种工具,都由事宜封装。因此,假如删除存储在Zope数据库中的文件或对一段代码举办粉碎性变动,则只需回滚执行它的操纵。弱点是很难在这样的代码库上行使像Git这样的当代源代码节制器材,这意味着你将数据放在Zope的自界说数据库器材的支配下。请留意,可以将MySQL之类的外部数据库毗连到Zope应用措施,但这首要用于托管应用措施数据,而不是替代ZODB。 与这里接头的很多较小的,更机动的框架对比,Zope的遗留和巨细转化为很多弱点。最大的弱点是Zope只能在Python 2.x下运行,以是不能操作Python 3库或异步语法,尽量正在全力办理这个题目。 (Zope 4仍处于测试阶段,包罗Python 3支持以及更多支持。) 轻量级的Python Web框架 Bottle Bottle可以被以为是一种迷你烧瓶,由于它比其他“微框架”越发紧凑和简捷。因为其占地面积最小,Bottle很是得当包括在其他项目中或快速交付REST API等小型项目。 Bottle的整个代码库得当单个文件,而且绝对没有外部依靠性。即便云云,Bottle还配备了足够的成果来构建常见的Web应用措施,而无需依靠外部辅佐。 Bottle中的路由体系将URL映射到函数,其语法与Flask险些完全沟通。也不只限于硬连线路径;可以动态建设它们。可以通过Bottle框架中的工具会见和操纵哀求和相应数据,cookie,查询变量,来自POST操纵的表单数据,HTTP标头和文件上载。 每项成果都颠末全心过细的实验。譬喻,行使文件上载,假如文件的定名约定与方针文件体系斗嘴(譬喻Windows上的名称中的斜杠),则不必重定名该文件;瓶子可以帮到你。 Bottle包括本身的简朴HTML模板引擎。同样,固然很小,但它已经装配好了必须品。默认环境下,模板中包括的变量行使安详HTML泛起;你必需指出哪些变量可以安详地从字面上重现。假如改换掉模板引擎并行使另一个模板引擎,譬喻Jinja2,那么Bottle可以辅佐轻松完成。我着实喜好与Bottle绑缚的简朴模板体系;它的语法不起眼,它应承殽杂代码和模板文本而不会有不恰当的坚苦。 Bottle乃至支持多个处事器后端。它配备了本身的内置miniserver以举办快速测试,但可以支持各类兼容WSGI的HTTP处事器,并在必要时可以回退到平凡的旧CGI。 Bottle不必要像其他框架那样多的文档,但文档毫不是小气。全部要害的对象都得当单个(尽量很长)的网页。除此之外,还可以找到每个API的完备文档,如安在各类基本架构长举办陈设的示例,内置模板说话的表明以及一系列常见配方。 与Flask一样,可以手动或通过编写增补瓶的插件扩展Bottle的成果。 Bottle插件列表远不及Flask的巨细,但有一些有效的部门,譬喻与各类数据库层的集成和根基的用户身份验证。对付异步支持,Bottle可以行使异步运行的现有处事器适配器之一,譬喻aiohttp/uvloop。 Bottle极简主义的一个效果是有些成果基础就不存在。不支持表单验证,包罗CSRF掩护等成果。假如要构建支持高度用户交互的Web应用措施,则必要本身添加它们。 CherryPy CherryPy已经存在了高出10年,但并没有失去最初区分它的极简主义和优雅。 这个框架的条件是,除了只包括为web页面提供处事所需的少量内容外,它应该尽也许地让人感受它不像“web框架”,而是像任何其他范例的Python应用措施一样。按照文件表现,Hulu和Netflix等网站在建造中行使了CherryPy,这也许是由于该框架提供了一个高度低调的基本。 CherryPy可以将Web应用措施与焦点逻辑区分隔来。要将应用措施的成果映射到CherryPy提供的URL或路由,必要建设一个类,个中工具的名称空间直接映射到您要提供的URL;譬喻,网站的根由名为“index”的函数提供。转达给这些函数的参数用于处理赏罚由GET或POST要领提供的变量。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |