Python框架浅谈

       时至今日,发展到尽头的Python的Web Framework 可谓是百花齐放,各种micro-framework、framework数不胜数。

       python这么多的框架,能全都玩一边,熟知的人不多,下面我就我知道的一些相关知识,做一个简单的总结和浅谈。

       一、Django

 

      Django可以说是Python框架中势力最大的一个,他的文档完善、市场占有率最高、招聘的职位也是最多。他的有别于其他框架的地方有:

       1、全套的解决方案:Django像Rails一样,提供全套的解决方案(full-stack framework+batteries included),基本要什么有什么(cache,session、feed、orm、geo、auth),这些全部都是django自己造,开发网站必备的工具Django基本都有,因此开发效率高,除了各种问题也有地可寻。

       2、强大的URL路由配置,Django让你可以设计出非常优雅的URL,在Django里你基本客户跟丑陋的GET sey bye bye。

       3、自助管理后台,admin interface 是Django里比较吸引眼球的一项contrib(捐助、捐献),几乎不用写代码就拥有一个完整的后台管理界面。

      但没有十全十美的框架,Django坚持自己造的所有的轮子,整个系统相对封闭。而且:

       1、系统紧耦合,如果在使用过程中,觉得自带的内置功能不好用,想用第三方库来扩展是很困难的。比如要用SQLAlchemy或者Mako替换掉ORM、Template几乎是不可能的。Django自带的ORM远不如SQLAlchemy强大,SQLAlchemy是Python世界中的ORM标准,其他框架都支持SQLAlchemy了,唯独Django仍然坚持;Template 功能比较弱,不能插入Python代码,如要写复杂一点的逻辑需要另外用Python实现Tag或者Filter。

      2、URL配置虽然强大,但要全部手写,这点跟Rails的Convention over configuration 的理念完全相左,高手和初识Django的人配出来的URL会有很大差异。

      3、Python 文件做配置文件,而不是更常见的ini、xml、yaml等形式,这本身不是什么问题,可是因为理论上来说settings的值是动态的改变的,所以不是最佳体现。

      4、总的来说,Django大包大揽,用来快速开发以希望Web项目是不错的,但如果你用习惯了Django,你会越用月习惯。但如果不能接收Django的设计哲学,用起来只是徒增痛苦。

       二、Pylons

     Python框架的另一巨头就是Pylons了(TurboGears2.x是基于Pylons做的,而repoze.bfg也并入了Pylons project 里面)。

     Pylons的设计理念和Django完全不同,Pylons本身只有两千行左右的Python的代码,不过他附带一些几乎就是pylons御用的第三方模块。Pylons只是提供一个架子和可选方案,用户可以根据自己的喜好选择Template、ORM、form、auth等组件,系统高度可定制。可以说pylons就是用胶水语言(glue language)设计的胶水框架了。

     如果觉得pylons很完美了,如果选择了pylons,那么噩梦也就随之而至了。

     噩梦一:学习

     Pylons依赖于许多第三方库,他们并不是Pylons所造,学习Pylons的同时还要学习这些库的使用。所以说Pylons 的学习曲线要比Django高的多,而且Pylons的官方文档也一直是人们批评的对象(好在出了The Definitive Guide toPylons )。

     Pylons一度被誉为只适合高手使用的Python框架。

     噩梦二:调试

     不出错误万事大吉,一旦出了错误,因为涉及到了第三方模块太多,所以很难定位到是哪里出了问题,只有用的很熟才能解决此类问题。

     噩梦三:升级

     安装Pylons需要安装近20几个模块,各有各的版本号。要升级Pylons的版本,哪个模块出了不兼容的问题都有可能,导致升级很难。

    Pylons和repoze.bfg 的融合可能会催生下一个能挑战Django地位的框架。

       三、Tornado

     Tornado 即是一个 Web server ,同时又是一个类Web,py 的micro-framework,作为框架Tornado的思想来源于Web.py

。Web.py 的设计临力求精简keep it simple and poweful,总共没有多少代码,也想Pylons那样依赖大量的第三方模块,而是提供一个框架所必须的一些东西,如:URL路由、Template、数据库访问。

    一个框架精简的好处是你可以聚焦在业务逻辑上,而不是用太多精力放在框架本身,但缺点也很明显,许多事情还要亲自操刀。

       四、Flask & Bottle

     作为新生代Python框架的代表,两个框架都采用了decoretor的方式配置URL路由。

     两者和web.py一样,都非常精简,另外Flask和Pylons一样,可以和jinja2、SQLAlchemy之类很好的结合。

    Quixote 豆瓣使用开发框架

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值