设为首页 收藏本站
查看: 622|回复: 0

[经验分享] SD2C之三种Python的Web框架

[复制链接]

尚未签到

发表于 2017-5-3 07:51:47 | 显示全部楼层 |阅读模式
  在SD2C上的另外一些收获来自于Web应用方面。一个是董洵的GAE讲座,一个是钱宏武关于大型WEB应用的讲座。
  钱宏武有一个观点谈到关于技术选型一定要选择那种久经考验资源丰富的解决方案。比如对于WEB应用来说,PHP就是这样一种靠谱的方案。这个我很赞同,像ASP就是在过去一些年里未能通过考验而可耻滴被淘汰的技术——傍上MS又如何,现实是残酷的,连MS自己也放弃了ASP。一个朋友有一个ASP做的网站要我帮忙在国外找个虚拟主机空间(国内的虚拟主机商太不靠谱,而且价格贵得离谱),结果我找了四家比较有名的,只有一家有提供支持ASP的Windows平台。
  于是我想到了这两年来我所接触过的PythonWeb框架:Django, TurboGears,Pylons。因为那天有事急着回市区,没能等到董洵讲座的问答一环节,所以也就没能问一下他的看法。不过按董洵在讲座中的观点来看,他是对Django是非常推崇的,他自己的网站“好看簿”就是用Django开发的——他说到这个我才想起来07年在土豆的barcamp上见过他。
  回上海后在BT妓术群里也讨论了一下这个话题,令狐作《Django到底有什么好?》来谈这个问题。
  我最初接触Python的Web开发就是听Limodou介绍的Django,从0.94版一直用到0.96版。令狐因为之前用过CherryPy,所以比较倾向于基于CherryPy的TurboGears。不过在经过一段时间的使用之后,我还是决定从Django换到了TG,因为我不喜欢Django独有的ORM和非XML的模板——虽然这个叫做Jinja的模板引擎的确比TG默认的KID要快得多。不过我用TG也不太喜欢用它默认配置的SQLObject和KID,而是喜欢SQLAlchemy和Genshi。TG的优点就在于此,你可以按自己的喜好选择使用ORM和/或模板引擎,不会像Django那样让人感觉受约束。
  到了08年,BT妓术群要做新版本狗屎皮网站时,在MK的提议下,我们选择了Pylons——它也像TG一样是可自由组装的,但是底层是基于Paster而不是CherryPy,二者的优劣我不好评说,但可以肯定的是,Pylons的配置性比TG更好。但促使我们作出这样的决定的理由却很简单——TG2开始就不再是基于CherryPy而是要改投Pylons门下了,虽然当时TG2还未正式推出(现在也只到Beta1)。
  经过这么一番折腾之后再回头来看这三个框架,感觉就不同了。
  Django虽然是一个全包的解决方案,但是它的方案却是经得起考验的——因为据说Django的诞生差不多与RoR同时,也都是基于实际的应用开发需要而被创建出来的,它是一个与RoR类似的方案,但却绝不是仿制品。
  TurboGears的想法是很好的,但是因为用到的组件过多,并且千差万别,TG的组合从某种程度上说是比较勉强的,并且不得不因此加了很多比较难看的手法,使用上问题也是比较多的。
  Pylons虽然思路与TG类似,但是做法要清爽得多。最关键的是它提供的功能却一点也不差,比如URL映射(REST需要),还有对CACHE的支持等(当然这些Django也都有)。只是用起来麻烦一点。
  我虽然用TG做过一些应用,但都是只有几十个用户的小应用。对于实际的大规模应用来说,TG的效能是很可疑的。在这一点上,Django和Pylons都要好得多。
  回到前面所说的“久经考验”的问题上。要说Python世界里最久经考验的方案,那大概就要数Zope了,不过那个东东实在是太笨重了,堪比J2EE。
  而除了Zope之外,这三个方案(甚至还可以包括RoR等)跟PHP比起来都不能算是久经考验,但如果一定要在这三个里选一个的话,恐怕最后胜出的还会是Django。
  不过我觉得要是从趋势上看,Pylons会很有前途——
  Limodou在说了《merb的不可知--与uliweb框架的走向》后不久,merb就正式与RoR合并了。如果把RoR比作Django的话,merb就像是Pylons,也许将来在TG2与Pylons正式合并以后,Django也加入进来不是不可能的。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-372279-1-1.html 上篇帖子: python通过ssh-powershell监控windows信息 下篇帖子: [Python源码学习]之Py_InitializeEx
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表