浅析七款“Python开源框架”的优弱点
副问题[/!--empirenews.page--]
一:Django Django 应该是最着名的Python框架,GAE乃至Erlang都有框架受它影响。Django是走大而全的偏向,它最着名的是其全自动化的打点靠山:只必要行使起ORM,做简朴的工具界说,它就能自动天生数据库布局、以及全成果的打点靠山。 ![]()
开源框架,有美满的文档支持 办理方案浩瀚,内部成果支持较多 优雅的URL,完备的路由体系 自助式的靠山打点
体系紧耦合,想用喜好的第三方库来取代长短常难的,纵然打了一些补丁用上了也会认为很是别扭。 Django自带的ORM远不如SQLAlchemy强盛。 Template成果较量弱,不能插入Python代码,要写伟大一点的逻辑必要其它用Python实现 Tag或Filter。 二:FlaskFlask是一个用Python编写的轻量级Web应用框架。基于Werkzeug WSGI器材箱和Jinja2模板引擎。Flask也被称为“microframework”,由于它行使简朴的焦点,用extension增进其他成果。Flask没有默认行使的数 据库、窗体验证器材。 ![]()
Flask比Django更机动,用Flask来构建应用之前,选择组件的时辰会给开拓者带来更多的机动性 ,也许有的应用场景不得当行使一个尺度的ORM(Object-Relational Mapping工具关联映射),可能必要与差异的事变流和模板体系交互。
Flask只是一个内核,默认依靠于两个外部库: Jinja2 模板引擎和 Werkzeug WSGI 器材集,其他许多成果都是以扩展的情势举办嵌入行使。 三:Scrapy![]() Scrapy是Python开拓的一个快速、高条理的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取布局化的数据。Scrapy用途普及,可以用于数据发掘、监测和自动化测试。
Scrapy是一个成果很是强盛的爬虫框架,它不只能便捷地构建request,尚有强盛的selector可以或许利便地理会response,然而它最受接待的照旧它的机能,既抓取息争析的速率,它的downloader是多线程的,request是异法式度和处理赏罚的。这两点使它的爬取速率很是之快。 其它尚有内置的logging,exception,shell等模块,为爬取事变带来了许多便利。
scrapy是封装起来的框架,他包括了下载器,理会器,日记及非常处理赏罚,基于多线程, twisted的方法处理赏罚,对付牢靠单个网站的爬取开拓,有上风,可是对付多网站爬取100个网站,并发及漫衍式处理赏罚方面,不足机动,未便调解与括展。 四:TornadoTornado是一种 Web 处事器软件的开源版本。Tornado 和此刻的主流 Web 处事器框架(包罗大大都 Python 的框架)有着明明的区别:它长短阻塞式处事器,并且速率相等快。 ![]()
Tornado善于为必要精密节制异步收集细节的应用措施提供基本架构。譬喻,Tornado不只提供内置的异步HTTP处事器,还提供异步HTTP客户端。因此,Tornado很是得当构建应用措施,譬喻Web scraper或bot,它们并行查询其他站点并对返回的数据举办操纵。
模板和数据库部门有许多第三方的模块可供选择,这样倒霉于封装为一个成果模块。 五:Web2pyweb2py是一个为Python说话提供的全成果Web应用框架,旨在火速快速的开拓Web应用,具有快速、安详以及可移植的数据库驱动的应用,兼容 Google App Engine。 ![]()
Web2py最大的吸引力在于其内置的开拓情形。当配置Web2py实例时,将得到一个Web界面,现实上是一个在线Python应用措施编辑器,可以在个中设置应用措施的组件。这凡是意味着建设模子,视图和节制器,每个都通过Python模块或HTML模板举办描写。
Web2py的一个重要限定是它仅与Python 2.x兼容。起首这意味着Web2py无法行使Python 3的异步语法。假如你依靠于Python3独占的外部库,那么你就不走运了。可是,正在开展使Web2py Python3兼容的事变,而且在撰写本文时它已靠近完成。 六:WeppyWeppy感受就像Flask的简约气魄威风凛凛和Django的完备性之间的中间标志。固然开拓Weppy应用措施具有Flash的直接性,但Weppy具有Django中的很多成果,如数据层和身份验证。因此,Weppy合用于从极其简朴到适度伟大的应用措施。 ![]()
Weppy的文档与框架自己具有沟通的气魄威风凛凛。它干净,可读,而且被人类斲丧。除了凡是的“hello world”应用措施示例之外,它还包括一个很好的演练教程,可以让你建设一个微博体系作为初学者项目。
固然Weppy有一个扩展机制,但官方核准的附加组件列表很小,远小于Flask的扩展目次。 七:BottleBottle可以被以为是一种迷你烧瓶,由于它比其他“微框架”越发紧凑和简捷。因为其占地面积最小,Bottle很是得当包括在其他项目中或快速交付REST API等小型项目。 ![]()
Bottle不必要像其他框架那样多的文档,但文档毫不是小气。全部要害的对象都得当单个(尽量很长)的网页。除此之外,还可以找到每个API的完备文档,如安在各类基本架构长举办陈设的示例,内置模板说话的表明以及一系列常见配方。
Bottle极简主义的一个效果是有些成果基础就不存在。不支持表单验证,包罗CSRF掩护等成果。假如要构建支持高度用户交互的Web应用措施,则必要本身添加它们。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |