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

[经验分享] Python Django还是RoR,这是一个问题

[复制链接]

尚未签到

发表于 2015-4-20 09:33:14 | 显示全部楼层 |阅读模式
    看了limodou 在上期程序员杂志推荐的Python Django框架,于是选择Django用来书写热点自动发现的Web界面。Python本身的优势、友好的URL、方便的template、MVC,都是让书写Django顺畅|好心情的原因。
   但是再往下,还是有点担心。一是Ajax,寻找了一圈,也就是“Ajax With Django”这篇文章给出的资源还靠谱;二是将来升级的问题。


  对于Ajax和Django的集成问题,到底选择集成Dojo,还是选择集成JQuery,还是像TurboGears一样直接用MochiKit?11月3日,哈哈,James Bennett回答很酷:

“

On 11/3/06, Enquest  wrote:
> What would it take to integrate jquery to Django?
> Just like now is happening with Dojo... I think however jquery is a
> better lib ...

Dojo integration was a fleeting, now-discarded idea. Django will not
be "integrating" any JS toolkit. One good reason for this is evident
in your post: no matter which one was chosen, someone would always be thinking that some other toolkit would have been better.”


   是啊,总有人会不满意的。但。。。他们就一直遵循这个原则“make the simple things easy and the complex things possible.”?



   大陆这边可能由于blogspot被封的原因,很少有人能看到119日台北thegive写的《 Django Ruby on Rails 成功的原因》。是啊,是及时切换到RoR,还是等待Django,还是TurboGears?这是一个问题。

    Ian Maurer倒是给出了TurboGearsDjango的比较,请看后面的资源二。

虽然limodou推出了《Django Step by Step》,但似乎PythonWeb框架介绍远远不如RoR的多和精彩。






资源一:

从 Django 看 Ruby on Rails 成功的原因

这里有一份对岸 cookoo 写的对Django的遗憾,真是一篇好文章,里面描写到 Django 如何错失大鸣大放的机会。我看完之后,突然发现 cookoo 这篇文章藉由 Django 的缺点,他也顺便偷偷分析了 Ruby on Rails 成功的原因。大家可以来看看

    django的原始码改动频繁ORM API 繁琐(后来按ActiveRecord风格重写)没有整合的测试框架没出书,文件相比Rails缺之甚多python内部有人对django完全独立的一套full-stack系统有不同看法,又搞了很多别的框架(比如turbogears)
  • django对AJAX热潮无动于衷
相比起来

    Rails Team 相当稳定,很少大改ORM 太优美了出的书籍一级棒,文件也相当多Ruby 因为社群小,超级团结Full Stack 框架,Unit Test 内建
  • RJS 赶上 AJAX 热潮,炒热不少话题
虽然 Open Source 技术为本,但是撇开 Ruby on Rails 优秀的技术不谈。

    假如大家都不写文件,Ruby on Rails 的文件不够多的话,有人敢用一个不熟悉的语言吗?没有将 Ruby 社群主力放在 Rails 身上,写得出那么多 API 吗?没有团结的团队,人员来来去去,吵来吵去的团队作得出好作品吗?
  • 没有 DHH 肯花写程序以外的时间推销 Rails ,并且花众多时间写出一本Agile Web Development with Rails,会更多人愿意花时间去学习一个听都没听过,也没有公司support 的 Ruby on Rails 吗?

一 向是一盘散沙的 Open Source 社群可以仔细思考一下 Ruby on Rails 带给大家的启示。Ruby 社群向心力强,不分散力量,又懂得出书以及掌握时势用RJS炒热话题。这说明,团队管理好,向心力强,营销强,正是 Ruby on Rails 扩散那么快速的主因。其实,这不正是一个好商业团队应该具备的特质吗?


资源二:
DSC0000.jpg :TurboGears 和 Django 的比较
Django 和 TurboGears 都是 MVC 风格的框架,开发人员可以利用这些技术使用 Python 语言快速开发 Web 站点。为了选择最适合您的需求的技术,请考虑以下区别:

  • 背景
这两个项目与 Ruby on Rails 一样,都是从现有的应用程序中提取出来发布到开源社区中的。Django 的历史比较长,来源于一个每天服务于数百万次页面查看请求的在线报纸服务。TurboGears 是从一个胖客户机 —— RSS News Reader 应用程序,目前仍在开发中 —— 中提取出来的。TurboGears 的社区驱动力比 Django 更好,因为它是在现有开源组件上建立起来的。
这两个项目之间背景的差异导致了不同的项目优先级。Django 项目来源于迅速变化的在线出版业,它重点关注的是一个可以快速构建并修改基于内容的应用程序的框架。TurboGears 项目的基础是消费产品,重点关注的是胖客户机应用程序和可插入体系架构。

  • URLs
TurboGears 的请求分发机制通过控制器类和方法名进行路由。在添加新控制器类或方法之后,它们就自动变为可用的了。如果我们需要修改执行给定控制器的路径,就需要对代码结构重新进行配置。反之,Django 使用了一个单独的基于正则表达式的配置文件将 URL 映射为底层代码,这样就降低了 URL 路径结构与实际实现之间的耦合程度。
TurboGears 系统的设置比 Django 更加快捷,因为它只需要一个 expose 操作让新页面变成可用即可。然而,Django 配置系统可以进行最大限度的控制和灵活性。在发生重大变化之后,Django URL 可以简单地重新映射到应用程序上。这个帮助防止由于旧书签或缓存搜索引擎结果引起的 “链接失效” 的情况。“链接失效” 会对 Django 设计用来创建的基于内容的 Web 站点的通信级和可用性造成很大的影响。

  • 代码重用
TurboGears 团队将他们的项目称为大框架,这样清晰地表达了 TG 是一个由现有的很多组件构成的项目这一思想。TurboGears 团队选择并集成了最好的开源代码,而不是从头重新开始编写。TurboGears 框架的另一个优势是这是一个由很多社区构成的大项目。TG 现在功能已经非常强大,正在强力促进大家对构成 TurboGears 核心组件的兴趣和参与。这样可以起到水涨船高的效果。
另外一方面,Django 是在 2003 年创建的,当时 Python 组件的状态还不像现在一样稳定。Django Web 栈是从头开始创建的,最终的结果是获得了一个稳定的框架,这个框架已经被用来创建了多个每天处理数百万点击率的 Web 站点。然而,有些人评论说 Django 项目可能会由于缺乏代码的重用而遭遇 NIH(Not Invented Here)问题。Django 团队的立场是在 Python 中从头创建一个框架所需要的工作不会比将现有的组件拼装在一起更困难,这样最终可以生成一个更统一的框架。

  • JavaScript
TurboGears 在自己的框架中首先提供了 MochiKit,这是一个 JavaScript 库。这个团队还创建了一个部件库,它可以充分利用 JavaScript 创建丰富的表单元素。这显示了胖客户机(Ajax)开发在 TurboGears 世界中是多么重要。Django 团队没有选择使用一个 JavaScript 库来默认地包含自己的框架,但是他们已经对这种可能性展开了讨论。这两个项目都不会限制我们使用任何 JavaScript 库。

  • 管理工具
这两个项目都有管理接口。Django 管理工具的目标用户是那些需要良好数据入口工具的终端用户,这样每次向应用程序中添加新功能时就不需要对工具进行定制了。另一方面,TurboGears 管理工具重点关注的是开发人员的需要:它为开发人员提供了一组设计工具,以及一个基本的数据库查看器和编辑器。

  • 许可证
由于 Django 是从头开始创建的,因此整个项目都使用的是开源许可证(BSD 许可证)。TurboGears 是由多个项目构成的,使用了多个许可证。SQLObject(ORM 工具)是使用 LGPL(Lesser General Public License)保护的,这说明对 SQLObject 进行的任何直接修改都需要贡献回这个项目。这个许可证并 要求使用它的应用程序也开放源代码。不过有些公司会禁止使用受 LGPL 许可证保护的软件。在这种情况下,我们可以考虑使用 SQLAlchemy,它是 TG 社区大力支持的另外一个 ORM 工具。

  • 实际例子
请参见 参考资料 部分给出的已知的 Django 和 TurboGears 驱动的站点的列表。这些实际的应用程序展示了我们可以使用每个工具实现什么功能。

资源三:
Tr Ruby 显示 AJAX 可怕之处的 Demo site,你可以在 Web 上面打入任何 ruby command,他也会立刻显示 irb 的结果。


资源四:
大公司对于 Ruby and Ruby on Rails 的动作列表

国际大厂对于新技术的动作一向保守,不过这一年来,他们对于 Ruby and Ruby on Rails 的动作从观望,似乎变成了开始小幅买进了。

    SUN:Sun 雇用了 JRuby 核心开发者Amazon:Amazon疑似加码 37 Signal ?Yahoo: Yahoo Developer Network 也开始加入 Ruby 选项Microsoft:MS 聘了 RubyCLR 创造者Google: Google 买下用 Ruby on Rails 写的Measure Map 。这家公司也拥有 Rails Core Team 其中一员Nicholas Seckar。
  • IBM:IBM采用 Ruby on Rails 来开发 Koala Project
藉由一连串的 Ruby 大爆发以及 Ruby 书籍销售长红,大家或多或少都看到 Ruby and Ruby on Rails 的能力跟潜力。外资会不会持续有加码动作呢?我们可以等 thegiive 老师持续为您报明牌 XD


运维网声明 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-58668-1-1.html 上篇帖子: 优秀Python学习资源收集汇总(强烈推荐) 下篇帖子: Python 天天美味(37)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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