加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

13个Python Web框架较量,你想行使哪个呢?

发布时间:2018-10-27 19:46:38 所属栏目:移动互联 来源:佚名
导读:Python措施员有许多很好的选择来建设Web应用措施和API;Django,Weppy,Bottle和Flask引领潮水。 假如正在开拓一个Web应用措施而且已经选择行使Python作为构建它的说话,那么这是一个明智的选择。Python的开拓成熟度,强盛的库以及普及的现实应用使其成为W

像Bottle或Falcon一样,Tornado省略了与其焦点目标无关的特性。譬喻,Tornado有一个内置的模板体系,用于天生输出(以HTML或其他方法)和国际化,表单处理赏罚,cookie配置,用户身份验证和CSRF掩护的机制。可是它省略了相同于表单验证和ORM的成果,它们更得当面向用户的Web应用措施。

Tornado善于为必要精密节制异步收集细节的应用措施提供基本架构。譬喻,Tornado不只提供内置的异步HTTP处事器,还提供异步HTTP客户端。因此,Tornado很是得当构建应用措施,譬喻Web scraper或bot,它们并行查询其他站点并对返回的数据举办操纵。

假如正在实行建设一个行使HTTP以外的协议的应用措施,Tornado会提供辅佐。它提供对DNS理会器以及第三方认证处事等适用措施的初级TCP毗连和套接字的会见,并支持通过WSGI尺度与其他框架举办互操纵。文档很小但不稀少,包括了怎样完成全部这些的大量示例。

Tornado既操作并增补了Python的异步举动本机成果。假如行使的是Python 3.5,Tornado支持内置的异步和守候要害字,它们可觉得应用措施提供速率晋升。对付早期版本的Python,可以行使yield语句。在任何一种环境下,都可以行使期货或回调来处理赏罚对变乱的相应。

Tornado 5.0改造了与Python的本机异步成果的集成。因此不再支持Python 3.3,而且Python 3.5用户必需行使Python 3.5.2或更高版本。 Tornado 6.0将必要Python 3.5及更高版本,并将完全放弃Python 2支持。

13个Python web框架较量
  1. 文档描写为“类BSD”.
  2. 由统一作者通过单独的库提供。
  3. 支持SQLAlchemy作为尺度ORM但不包罗在内。
  4. Tornado wiki中提供的链接。
  5. 可通过第三方扩展措施得到。

Tornado还提供了一个同步原语库,信号量,锁等,以和谐异步协程之间的变乱。请留意,与Python表明器自己一样,Tornado凡是运行单线程,因此这些原语与其线程名称差异。 可是,假如想在并行历程中运行Tornado以操作多个套接字和内核,那么可以行使这些器材。

Tornado的文档涵盖了框架中的每个首要观念以及模子中的全部首要API。 固然它包括一个示例应用措施(收集抓取器材),但它首要用于演示Tornado的列队模块。

Web.py

Web.py最初是由已故的Aaron Swartz建设的,并被用作Reddit的原始基本。尽量Reddit也许已经从Web.py转移,但Web.py继承由其他人维护,首要是Anand Chitipothu。在范畴和计划上,Web.py相同于Bottle和Flask;你可以把它看成一个根基的骨架,然后在它上面构建,而不会感受太受限定。

要挪用根基的Web.py实例,必要做的就是转达一个URL和函数映射列表。 URL可以包括带有捕捉参数的正则表达式,应承行使/users/RayB或/article/451等名目从URL中提取数据。 Bottle具有相同的机制,但也提供了确保参数切合某些尺度的要领(譬喻,它们只能是整数)。

Web.py在很洪流平上保持干净和朴实,由于它不会实行包袱其他机制更甜头理赏罚的使命。譬喻,没有本机成果应承从Web.py仓库提供静态内容;说显着智地提议改为通过Web处事器。对比之下,Bottle具有提供静态内容的本机成果,尽量它是可选的。 Web.py还包罗cookie和会话打点,乃至尚有一个简朴的输出缓存。

Web.py有一个HTML模板体系;它长短常根基的,但应承if/then/else逻辑。更伟大,更有效的是Web.py的动态天生HTML表单的体系,具有CSS样式的类属性和根基的表单验证机制。假如但愿行使以编程方法天生的表单(譬喻根基数据库资源打点器)天生应用措施,这将很是利便。

Web.py的文档与框架自己一样小,但它并没有提供相干的示例。 “cookbook”部门(多种说话,不低于)演示了很多常见用例(提供静态内容,慢慢传输大型文件等)。乃至尚有一个行使该框架构建的真实Web应用措施库,个中很多都带有源代码。

请留意,Web.py并未像其他框架一样保持与Python 3兼容性的最新状态。这不只意味着缺乏对异步语法的支持,还意味着穷乏对已弃用的函数的错误。另外,今朝尚不清晰维护者是否有打算在Python 2达到其支持生命周期竣事后保持Web.py的最新状态。

Wheezy.web

Wheezy.web是Web框架的Flask/Bottle/Pyramid模子:小巧精练,专注于提供高速和高并发性。这个成果集的焦点是小的,但它的建设者已经为它配备了各类必备成果。

评论Wheezy.web作为单一产物有点误导。Wheezy.web将统一作者建设的其他几个库粘合在一路,每个库按照但愿应用措施的操纵提供差异的处事。譬喻,Wheezy.http库被Wheezy.web大量用于很多根基举动,但除非应用措施必需执行用户身份验证,不然不必要Wheezy.security库。

这种库荟萃要领意味着行使Wheezy开拓的最简朴要领是从PyPI安装它或行使easy_install来网络全部相干的包。我在Python 3.51中行使easy_install时碰着了题目,但它在Python 2.7中运行精采。

Wheezy.web的焦点首要是将路由映射到函数和处理赏罚重定向,但它配备了一些其他有效的成果。譬喻,行使@secure装饰器标志的任何路由将仅接管HTTPS哀求,而且假如举办HTTP毗连实行将重定向到HTTPS。另一个焦点添加是中间件,以便可以自界说路径路由和HTTP错误。

Wheezy的其他库涵盖了一组相等富厚的用例。Wheezy.validation可以辅佐确保提交的数据满意特定前提,譬喻,用户名或暗码满意长度或伟大性要求。Wheezy.caching应承缓存未变动的相应以加快处理赏罚,Wheezy.captcha与Python的PIL/Pillow图像库集成以天生验证码。对付国际化,它与尺度GNU gettext适用措施集成。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读